2200 |
How can I delete the selected items (including descendants)
// KeyDown event - Occurs when the user presses a key while an object has the focus. void __fastcall TForm1::G2antt1KeyDown(TObject *Sender,short * KeyCode,short Shift) { G2antt1->RemoveSelection(); } G2antt1->BeginUpdate(); G2antt1->SingleSel = false; G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,8,1).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); var_Chart->SelBackColor = RGB(240,240,240); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2017,8,2).operator double()),TVariant(TDateTime(2017,8,6).operator double()),TNoParam(),TNoParam()); long h = var_Items->AddItem(TVariant("Task 2")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2017,8,3).operator double()),TVariant(TDateTime(2017,8,9).operator double()),TNoParam(),TNoParam()); var_Items->set_SelectItem(h,true); h = var_Items->AddItem(TVariant("Task 3")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2017,8,4).operator double()),TVariant(TDateTime(2017,8,13).operator double()),TVariant(""),TNoParam()); var_Items->set_SelectItem(h,true); var_Items->AddBar(var_Items->AddItem(TVariant("Task 4")),TVariant("Task"),TVariant(TDateTime(2017,8,5).operator double()),TVariant(TDateTime(2017,8,16).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2199 |
Dark mode
G2antt1->BeginUpdate(); String back = 65536; String fore = 16777215; G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQ") + "gmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYTh" + "dr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA")); G2antt1->VisualAppearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABPMIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwHCMIhiGwcAChEZYHgkMYmDAMUhSE78axHG6PY7kKZ4b") + "iaKIqQLLEhSfJ0YyBECBZpfebIbjmIZMSLEIxDKItJSpCIaRgqWS6ahGO4JUbUFLQHT9IR4daIYRgEEBA")); G2antt1->VisualAppearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABUUIQAAYAQGKIcBiAKBQAGaAoDDcMgwQwAAxjIKUEwsACEIrjKCYVgOHYYQjGMZwGAsEwjAoYAChEaILgkMw2DBIQwgJIMEr/G6RZxjeL5C") + "jmG4nDhKMpybAcXxjBIYZJgOQpXb+PobTrNNLzfRFAxVAaWJikcZ4HpIAJNVLFdQ0XYMNSBISsBqrKiKcpeIIDWBZMbRZT1ZABCIZBpEW6LahENQwXrCN74DYkNTdKax" + "bbuaaXLhGCYBgIA==")); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Bump; G2antt1->BackColor = back; G2antt1->BackColorHeader = back; G2antt1->BackColorLevelHeader = back; G2antt1->BackColorSortBar = back; G2antt1->BackColorSortBarCaption = back; G2antt1->FilterBarBackColor = back; G2antt1->FilterBarForeColor = fore; G2antt1->ForeColor = fore; G2antt1->ForeColorHeader = fore; G2antt1->ForeColorSortBar = fore; G2antt1->SelBackColor = fore; G2antt1->SelForeColor = back; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = 0x2000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exToolTipAppearance] = 0x3000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exToolTipBackColor] = back; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exToolTipForeColor] = fore; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSelBackColorFilter] = fore; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSelForeColorFilter] = back; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exBackColorFilter] = back; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exForeColorFilter] = fore; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSortBarLinkColor] = back; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCSplitBar] = 0x2000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHSplitBar] = 0x2000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exTreeLinesColor] = fore; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exScrollSizeGrip] = back; G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarExclude] = L"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>"; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->BackColor = back; var_Chart->BackColorLevelHeader = back; var_Chart->ForeColor = fore; var_Chart->ForeColorLevelHeader = fore; G2antt1->EndUpdate(); |
2198 |
I have changed the font, but the item's height remains the same. What I am doing wrong
G2antt1->BeginUpdate(); G2antt1->ColumnAutoResize = false; G2antt1->LoadXML(TVariant("http://www.exontrol.net/testing.xml")); G2antt1->Font->Size = TVariant(long(22)); G2antt1->HeaderHeight = 42; G2antt1->DefaultItemHeight = 36; G2antt1->Items->set_ItemHeight(0,G2antt1->DefaultItemHeight); G2antt1->Chart->UnitWidth = G2antt1->DefaultItemHeight; G2antt1->Chart->UnitScale = G2antt1->Chart->UnitScale; G2antt1->Chart->Bars->get_Item(TVariant("Task"))->Height = 18; G2antt1->EndUpdate(); |
2197 |
I have changed from Project Summary Task to own task created with EBN to get a black frame then using different colors for project status. How can I enlarge the EBN being applied to the head-arrows shows the start/end margins of the range
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemBold(Item,true); var_Items->AddBar(Item,TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(var_Items->get_GroupItem(Item)))),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam()); var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant("")); } // AddItem event - Occurs after a new Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam()); } G2antt1->BeginUpdate(); Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCQBQAWCQ1DAJIqjOAkEhiGCUQClYYZBjWG4dQLOEYTN") + "C8WwHCIZBpEWgKChGKAlSANMjTZLkdR1ECmIhoSg4coKMoERBJco1BDdOQGAyEQShEC4fgmVwAP7aNoWVC1JynM6XaKmGbJAA6CZgQKGFh2LAdTzSf61cAtWpaUjmRZa" + "YSAFDxpiCYpfQjdUB2JDVfTVP6LbawS4KZgOR5eRboETYeAFcSZGrNMKEXLLSyudKRRreWQaPpGCZTRSUdZxSrbBhvEqlbRNMhwSBEEigNIxToOU4jFgeCROQwQRK9BB" + "oG0CQUEIdhAAyJJvjUeZdmmb5+C8HhiAeZJznoPQ+EgT4rlua4BjCfg+k8d5TkUCZ4w+fxfB+X5xn4fheGebZoH8X53koAR9CASAWAUfofjgJgKH+IJHnGcIDmER5iBE" + "eZgmgVgLgGYYYGoFRTCGaIGAYRYiCiFgmgmYQEF4KIKmKSBRBqCxjAiRgvgwYxIiGQYNmOCJlDUOpeAQBCAg=")); var_Appearance->Add(2,TVariant("CP:1 -6 0 6 0")); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double())); var_Chart->set_PaneWidth(false,342); var_Chart->Bars->Add(L"S1")->Color = 0x1000000; var_Chart->Bars->Add(L"S2")->Color = 0x2ff0000; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"C1"); var_Columns->Add(L"C2")->AllowSort = false; G2antt1->SingleSort = false; G2antt1->AllowGroupBy = true; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("S1"))),TVariant(1),TVariant("SubItem A.1")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("S1"))),TVariant(1),TVariant("SubItem A.1")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("S2"))),TVariant(1),TVariant("SubItem B.1")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("S2"))),TVariant(1),TVariant("SubItem B.1")); G2antt1->Layout = L"MultipleSort = \"C0:2\""; G2antt1->EndUpdate(); |
2196 |
How can I specify the cell's outline, border or lines around, when the cell gets selected
G2antt1->BeginUpdate(); G2antt1->AttachTemplate(TVariant("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")); Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH") + "IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" + "Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" + "njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" + "YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")); var_Appearance->Add(2,TVariant("CP:1 -4 0 0 0")); G2antt1->SelBackColor = 0x2000000; G2antt1->SelForeColor = RGB(0,0,1); G2antt1->FullRowSelect = Exg2anttlib_tlb::CellSelectEnum::exColumnSel; G2antt1->ShowFocusRect = false; G2antt1->DefaultItemHeight = 24; G2antt1->HeaderHeight = 24; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines; G2antt1->Columns->Add(L"C1"); G2antt1->Columns->Add(L"C2"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Cell 1"))),TVariant(1),TVariant("Cell 2")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Cell 3"))),TVariant(1),TVariant("Cell 4")); G2antt1->Items->set_SelectPos(TVariant(1)); G2antt1->SelectColumnIndex = 1; G2antt1->EndUpdate(); |
2195 |
How can I specify the cell's outline, border or lines around, when the item gets selected
G2antt1->BeginUpdate(); G2antt1->AttachTemplate(TVariant("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")); G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH") + "IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" + "Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" + "njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" + "YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")); G2antt1->SelBackColor = 0x1000000; G2antt1->SelForeColor = RGB(0,0,1); G2antt1->ShowFocusRect = false; G2antt1->DefaultItemHeight = 24; G2antt1->HeaderHeight = 24; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines; G2antt1->Columns->Add(L"C1"); G2antt1->Columns->Add(L"C2"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Cell 1"))),TVariant(1),TVariant("Cell 2")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Cell 3"))),TVariant(1),TVariant("Cell 4")); var_Items->set_SelectPos(TVariant(1)); G2antt1->EndUpdate(); |
2194 |
How can I specify the cell's outline, border or lines around
G2antt1->BeginUpdate(); G2antt1->AttachTemplate(TVariant("handle AddColumn(Column){Column{Def(48)=4;Def(49)=4;}}")); G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSpEEg7BKMYwjOJgFgmEQxDANIBQSKoaQiGQYYLhEZAEiONoaDJCM4wH") + "IMQxHCKTZRkGcfaRCGSfIzpGKpVgOTYiTbPcIyQKtBxDIydJTmeQQQhsFIJU7SdVUPDUJZlWbLAwWTAYazXCKRZBpeJqdo6Y5RUDKUqSdLUYyvEq7ZqnOIpw5vICpaCq" + "Op6HqKFpiXSAFL1fLmAwvPKrJjoeqpWpyCaRZQAGg4dbEdTNNCIbatQANKrCSpgZ7sMB6Di2L4TPS2awoWgRYyTFZMbBAeQ7LC1c45Fqrd4zS4dSxKCahcLxFiaNpYZY" + "njUap1jGPJlkuAgAkidB3nceZsCQEQJCgGhMGcQ4pkiSxEAAOYpiQIhvkYNA2gSCg5n+LIoGILowFyXQoAYAoAmASAWAaAZgggJgKF2T54DYDoDmECBGBKBJgGgTgWgW" + "YRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChixULILGGGAWDCCgjCiTgrg0YxojoC4OmOSJ2D6D5kAgJLFgABAEICA=")); G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->ShowFocusRect = false; G2antt1->DefaultItemHeight = 24; G2antt1->HeaderHeight = 24; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines; G2antt1->Columns->Add(L"C1"); G2antt1->Columns->Add(L"C2"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Cell 1"))),TVariant(1),TVariant("Cell 2")); long h = var_Items->AddItem(TVariant("Cell 2")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Cell 3")); var_Items->set_CellBackColor(TVariant(h),TVariant(1),0x1000000); G2antt1->EndUpdate(); |
2193 |
Is it possible to highligth the match while a filter is applied
// AddColumn event - Fired after a new column has been added. void __fastcall TForm1::G2antt1AddColumn(TObject *Sender,Exg2anttlib_tlb::IColumn *Column) { // Column.Def(17) = 1 } // FilterChange event - Occurs when the filter was changed. void __fastcall TForm1::G2antt1FilterChange(TObject *Sender) { TVariant format = TVariant(G2antt1->FormatABC(L"`value replace '` + value + `' with '<bgcolor 000000><fgcolor FFFFFF>` + value + `</fgcolor></bgcolor>'`",TVariant(G2antt1->FilterBarPromptPattern),TNoParam(),TNoParam())); G2antt1->Columns->get_Item(TVariant(0))->FormatColumn = L"format"; G2antt1->Columns->get_Item(TVariant(1))->FormatColumn = L"format"; } G2antt1->BeginUpdate(); G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->Columns->Add(L"Col 1"); G2antt1->Columns->Add(L"Col 2"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("219 Smith"))),TVariant(1),TVariant("Ignacio 1234")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("1666 County Road 309A"))),TVariant(1),TVariant("897 Manassa")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("38 Lone Pine"))),TVariant(1),TVariant("Durango 11")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("612 Jachim Street"))),TVariant(1),TVariant("Lamar 222")); G2antt1->FilterBarPromptPattern = L"1"; G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible; G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptCaseSensitive | Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAll; G2antt1->EndUpdate(); |
2192 |
How can I display the total/sum/aggregate in the same column, when the user groups by a column
// AddColumn event - Fired after a new column has been added. void __fastcall TForm1::G2antt1AddColumn(TObject *Sender,Exg2anttlib_tlb::IColumn *Column) { } // AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemDivider(Item,-1); var_Items->set_ItemBackColor(Item,G2antt1->BackColorSortBar); var_Items->set_ItemHeight(Item,G2antt1->HeaderHeight); var_Items->set_CellMerge(TVariant(Item),TVariant(0),TVariant("1,2,3,4,5,7,8,9,10,11,12")); var_Items->set_CellValue(TVariant(Item),TVariant(13),TVariant("count(current,rec,1)")); var_Items->set_CellValueFormat(TVariant(Item),TVariant(13),Exg2anttlib_tlb::ValueFormatEnum::exTotalField | Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellValue(TVariant(Item),TVariant(0),TVariant(var_Items->get_CellCaption(TVariant(Item),TVariant(var_Items->get_GroupItem(Item))))); var_Items->set_FormatCell(TVariant(Item),TVariant(0),L"`<b>` + value + `</b> <font ;7><off 3><fgcolor=808080>(` + %13 + `)`"); var_Items->set_CellValue(TVariant(Item),TVariant(6),TVariant("sum(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant(6),Exg2anttlib_tlb::ValueFormatEnum::exTotalField | Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellForeColor(TVariant(Item),TVariant(6),RGB(102,102,102)); } // Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->Indent = 12; G2antt1->ColumnAutoResize = false; G2antt1->ScrollBySingleLine = true; G2antt1->BackColorSortBar = RGB(240,240,240); G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragScroll; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->HeaderHeight = 24; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Count")->Visible = false; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->get_Item(TVariant("Freight")); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor,TVariant(G2antt1->BackColorSortBar)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderBackColor,TVariant(var_Column->get_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor))); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingRight,TVariant(4)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellPaddingLeft,TVariant(4)); var_Column->HeaderBold = true; var_Column->AllowGroupBy = false; var_Column->FormatColumn = L"value format ``"; var_Column->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->get_Item(TVariant(0)); var_Column1->AllowGroupBy = false; var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1)); var_Columns->get_Item(TVariant("ShipCountry"))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->ScrollBySingleLine = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exBottom,1); long hL = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exBottom,0); var_Items->set_ItemHeight(hL,24); var_Items->set_ItemBold(hL,true); var_Items->set_ItemBackColor(hL,G2antt1->BackColorSortBar); var_Items->set_CellValue(TVariant(hL),TVariant(6),TVariant("sum(all,rec,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(hL),TVariant(6),Exg2anttlib_tlb::ValueFormatEnum::exTotalField | Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellHAlignment(TVariant(hL),TVariant(6),Exg2anttlib_tlb::AlignmentEnum::RightAlignment); var_Items->set_FormatCell(TVariant(hL),TVariant(6),L"value format ``"); G2antt1->EndUpdate(); |
2191 |
How do I add a total field locked at the bottom of the control
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine); var_Items->set_FormatCell(TVariant(Item),TVariant(var_Items->get_GroupItem(Item)),L"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`"); var_Items->set_CellValue(TVariant(Item),TVariant("Min"),TVariant("min(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Min"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Max"),TVariant("max(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Max"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Sum"),TVariant("sum(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Sum"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_ItemBackColor(Item,RGB(240,240,240)); } // Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine; G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Show/Hide"; G2antt1->ColumnsFloatBarSortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns; G2antt1->ColumnAutoResize = false; G2antt1->BackColorSortBar = RGB(240,240,240); /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column."; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Min"); var_Column->Visible = false; var_Column->AllowDragging = false; var_Column = var_Columns->Add(L"Max"); var_Column->Visible = false; var_Column->Visible = false; var_Column->AllowDragging = false; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Sum"); var_Column1->Visible = false; var_Column1->Visible = false; var_Column1->AllowDragging = false; Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->get_Item(TVariant("Freight")); var_Column2->FormatColumn = L"currency(value)"; var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor,TVariant(12895487)); var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderBackColor,TVariant(var_Column2->get_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor))); var_Column2->HeaderBold = true; var_Column2->AllowGroupBy = false; var_Column2->Alignment = Exg2anttlib_tlb::AlignmentEnum::RightAlignment; G2antt1->ScrollBySingleLine = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exBottom,2); long hL = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exBottom,0); var_Items->set_ItemDivider(hL,0); var_Items->set_ItemHeight(hL,3); var_Items->set_ItemDividerLineAlignment(hL,Exg2anttlib_tlb::DividerAlignmentEnum::DividerTop); var_Items->set_ItemDividerLine(hL,Exg2anttlib_tlb::DividerLineEnum::DoubleLine); hL = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exBottom,1); var_Items->set_CellValue(TVariant(hL),TVariant(6),TVariant("sum(all,rec,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(hL),TVariant(6),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_ItemHeight(hL,24); var_Items->set_ItemBold(hL,true); G2antt1->Columns->get_Item(TVariant("EmployeeID"))->SortOrder = true; G2antt1->EndUpdate(); |
2190 |
How can I add a total field, when I use grouping
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine); var_Items->set_FormatCell(TVariant(Item),TVariant(var_Items->get_GroupItem(Item)),L"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`"); var_Items->set_CellValue(TVariant(Item),TVariant("Min"),TVariant("min(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Min"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Max"),TVariant("max(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Max"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Sum"),TVariant("sum(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Sum"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_ItemBackColor(Item,RGB(240,240,240)); } // Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine; G2antt1->ColumnAutoResize = false; G2antt1->BackColorSortBar = RGB(240,240,240); /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->Columns->get_Item(TVariant(1))->SortOrder = true; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Min")->Visible = false; var_Columns->Add(L"Max")->Visible = false; var_Columns->Add(L"Sum")->Visible = false; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->get_Item(TVariant("Freight")); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor,TVariant(12895487)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderBackColor,TVariant(var_Column->get_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor))); var_Column->HeaderBold = true; var_Column->AllowGroupBy = false; G2antt1->ScrollBySingleLine = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exBottom,1); long hL = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exBottom,0); var_Items->set_ItemDivider(hL,0); var_Items->set_ItemHeight(hL,24); var_Items->set_ItemDividerLineAlignment(hL,Exg2anttlib_tlb::DividerAlignmentEnum::DividerTop); var_Items->set_ItemDividerLine(hL,Exg2anttlib_tlb::DividerLineEnum::DoubleLine); var_Items->set_CellValue(TVariant(hL),TVariant(0),TVariant("sum(all,rec,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(hL),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exTotalField | Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellHAlignment(TVariant(hL),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::RightAlignment); var_Items->set_FormatCell(TVariant(hL),TVariant(0),L"'Freight: <bgcolor=FFC4C4> '+(value format ``) + ` `"); G2antt1->EndUpdate(); |
2189 |
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns
|
2188 |
The BackColorAlternate displays each second row with a different background color. The question I have it is possible to apply a different background color for 3rd, 4th, row, and so on
// LayoutChanged event - Occurs when column's position or column's size is changed. void __fastcall TForm1::G2antt1LayoutChanged(TObject *Sender) { G2antt1->Refresh(); } // Sort event - Fired when the control sorts a column. void __fastcall TForm1::G2antt1Sort(TObject *Sender) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine; G2antt1->ColumnAutoResize = false; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Position"); var_Column->FormatColumn = L"1 apos ''"; var_Column->Visible = false; G2antt1->ConditionalFormats->Add(L"(%C13 mod 4) = 0",TNoParam())->BackColor = RGB(240,240,240); G2antt1->EndUpdate(); |
2187 |
The BackColorAlternate looks fine for flat tables, but how about using it when displaying a hierarchy/tree, like grouping rows. The sample alternate colors for each group found
// LayoutChanged event - Occurs when column's position or column's size is changed. void __fastcall TForm1::G2antt1LayoutChanged(TObject *Sender) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine; G2antt1->ColumnAutoResize = false; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->Columns->get_Item(TVariant(1))->SortOrder = true; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Position"); var_Column->FormatColumn = L"(0:= (1 rpos '')) left ( ( 1:= ( =:0 lfind `.` ) ) != -1 ? =:1 : len(=:0))"; var_Column->Visible = false; G2antt1->ConditionalFormats->Add(L"(%C13 mod 2) != 0",TNoParam())->BackColor = RGB(240,240,240); G2antt1->EndUpdate(); |
2186 |
I need to display sub-totals in the grouping items. Is there any solution on this
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemDivider(Item,-1); var_Items->set_EnableItem(Item,false); var_Items->set_CellValueFormat(TVariant(Item),TVariant(G2antt1->TreeColumnIndex),Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_FormatCell(TVariant(Item),TVariant(G2antt1->TreeColumnIndex),L"%1"); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Freight"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField | Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellValue(TVariant(Item),TVariant("Freight"),TVariant("sum(current,dir,%6)")); var_Items->set_FormatCell(TVariant(Item),TVariant("Freight"),L"`<b>` + currency(value)"); } G2antt1->BeginUpdate(); G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->BackColorSortBar = RGB(240,240,240); G2antt1->ColumnAutoResize = false; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SortBarVisible = true; G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column."; G2antt1->AllowGroupBy = true; G2antt1->Columns->get_Item(TVariant(1))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->Columns->get_Item(TVariant("ShipVia"))->DisplayFilterButton = true; G2antt1->EndUpdate(); |
2185 |
I use a subtotal in exTop-Item, after grouping the item shows 0. What is the solution
G2antt1->BeginUpdate(); G2antt1->ColumnAutoResize = false; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->AllowGroupBy = true; G2antt1->SortBarVisible = true; G2antt1->BackColorSortBar = G2antt1->BackColor; G2antt1->Columns->get_Item(TVariant(5))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->Columns->get_Item(TVariant(6))->FormatColumn = L"currency(value)"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exTop,1); long h = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exTop,0); var_Items->set_ItemBackColor(h,RGB(240,240,240)); var_Items->set_CellBackColor(TVariant(h),TVariant(6),RGB(190,190,190)); var_Items->set_CellValue(TVariant(h),TVariant(6),TVariant("sum(all,rec,%6)")); var_Items->set_CellValueFormat(TVariant(h),TVariant(6),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); G2antt1->Refresh(); G2antt1->EndUpdate(); |
2184 |
How can I add multiple values/columns on the same line/item/row
// Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->SortOnClick = Exg2anttlib_tlb::SortOnClickEnum::exNoSort; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->Indent = 13; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderHidden; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Items"); var_Columns->Add(L"Quantity")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; var_Columns->Add(L"Value")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Items")); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("sum(current,dir,dbl(%1)*dbl(%2))")); var_Items->set_CellValueFormat(TVariant(h),TVariant(2),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_FormatCell(TVariant(h),TVariant(2),L"`Total: `+ value"); var_Items->set_CellHAlignment(TVariant(h),TVariant(2),Exg2anttlib_tlb::AlignmentEnum::RightAlignment); var_Items->set_CellBold(TVariant(h),TVariant(2),true); var_Items->set_CellEditorVisible(TVariant(h),TVariant(2),Exg2anttlib_tlb::EditorVisibleEnum::exEditorHidden); var_Items->set_CellEditorVisible(TVariant(h),TVariant(1),Exg2anttlib_tlb::EditorVisibleEnum::exEditorHidden); long h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Item 1")); var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(10)); var_Items->set_CellValue(TVariant(h1),TVariant(2),TVariant(3)); h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Item 2")); var_Items->set_CellValue(TVariant(h1),TVariant(1),TVariant(20)); var_Items->set_CellValue(TVariant(h1),TVariant(2),TVariant(4)); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2183 |
Is it possible, to add more aggregate functions to grouping header
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_FormatCell(TVariant(Item),TVariant(var_Items->get_GroupItem(Item)),L"value + ` Min: <b>` + %13 + `</b> Max: <b>` + %14 + `</b> Sum: <b>` + %15 + `</b>, of Freight column`"); var_Items->set_CellValue(TVariant(Item),TVariant("Min"),TVariant("min(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Min"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Max"),TVariant("max(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Max"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(Item),TVariant("Sum"),TVariant("sum(current,all,dbl(%6))")); var_Items->set_CellValueFormat(TVariant(Item),TVariant("Sum"),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); } // Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine; G2antt1->ColumnAutoResize = false; /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: Microsoft ActiveX Data Objects 6.1 Library TypeLib: msado15.dll to define the namespace: Adodb_tlb */ //#include "ADODB_TLB.h" Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset"); rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0); G2antt1->DataSource = (IDispatch*)rs; G2antt1->SingleSort = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->Columns->get_Item(TVariant(1))->SortOrder = true; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Min")->Visible = false; var_Columns->Add(L"Max")->Visible = false; var_Columns->Add(L"Sum")->Visible = false; G2antt1->EndUpdate(); |
2182 |
Is it possible to display more aggregate functions to a single cell (method 2)
// Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->SortOnClick = Exg2anttlib_tlb::SortOnClickEnum::exNoSort; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->Indent = 13; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderHidden; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Items"); var_Columns->Add(L"Quantity")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; var_Columns->Add(L"Sum")->Visible = false; var_Columns->Add(L"Min")->Visible = false; var_Columns->Add(L"Max")->Visible = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Items")); var_Items->set_CellMerge(TVariant(h),TVariant(0),TVariant(1)); var_Items->set_FormatCell(TVariant(h),TVariant(0),L"`Items, <b>sum(` + %2 + `), min(` + %3 + `), max(` + %4 + `)</b>`"); var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("sum(current,dir,dbl(%1))")); var_Items->set_CellValueFormat(TVariant(h),TVariant(2),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(h),TVariant(3),TVariant("min(current,dir,dbl(%1))")); var_Items->set_CellValueFormat(TVariant(h),TVariant(3),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(h),TVariant(4),TVariant("max(current,dir,dbl(%1))")); var_Items->set_CellValueFormat(TVariant(h),TVariant(4),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(10)); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(20)); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(30)); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2181 |
How can I use the current in the aggregate/total field
// Change event - Occurs when the user changes the cell's content. void __fastcall TForm1::G2antt1Change(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,Variant * NewValue) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->SortOnClick = Exg2anttlib_tlb::SortOnClickEnum::exNoSort; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->Indent = 13; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderHidden; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Items"); var_Columns->Add(L"Quantity")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Items")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("sum(current,dir,dbl(%1))")); var_Items->set_CellValueFormat(TVariant(h),TVariant(1),Exg2anttlib_tlb::ValueFormatEnum::exTotalField); var_Items->set_FormatCell(TVariant(h),TVariant(1),L"`Total: `+ value"); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1"))),TVariant(1),TVariant(10)); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2"))),TVariant(1),TVariant(20)); var_Items->set_CellValue(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Item 3"))),TVariant(1),TVariant(30)); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2180 |
The CellValue/CellCaption property gets the result of a computed/total field with text formatting. Is it possible to get that value without text formatting
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"A")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; G2antt1->Columns->Add(L"B")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::SpinType; G2antt1->Columns->Add(L"A+B"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant(10)); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(20)); var_Items->set_CellValueFormat(TVariant(h),TVariant(2),Exg2anttlib_tlb::ValueFormatEnum::exComputedField); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("currency(dbl(%0)+dbl(%1))")); OutputDebugString( L"CellCaption returns " ); OutputDebugString( var_Items->get_CellCaption(TVariant(h),TVariant(2)) ); OutputDebugString( L"CellValue returns " ); OutputDebugString( PChar(var_Items->get_CellValue(TVariant(h),TVariant(2))) ); OutputDebugString( L"ComputeValue returns " ); OutputDebugString( PChar(var_Items->get_ComputeValue(TVariant("dbl(%0)+dbl(%1)"),TVariant(h),TVariant(0),TVariant(var_Items->get_CellValueFormat(TVariant(h),TVariant(2))))) ); G2antt1->EndUpdate(); |
2179 |
Can I get the result of a specified formula as your control does using the ComputedField property
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"A"); G2antt1->Columns->Add(L"B"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant(10)); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant(20)); OutputDebugString( L"A+B is " ); OutputDebugString( PChar(var_Items->get_ComputeValue(TVariant("dbl(%0)+dbl(%1)"),TVariant(h),TVariant(0),TVariant(2))) ); G2antt1->EndUpdate(); |
2178 |
Is it possible to get the text without HTML formatting
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L""); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("<b>bold</b>")); OutputDebugString( PChar(var_Items->get_ComputeValue(TVariant(var_Items->get_CellValue(TVariant(h),TVariant(0))),TVariant(h),TVariant(0),TVariant(1))) ); G2antt1->EndUpdate(); |
2177 |
Transparent/Border SummaryBar
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine); var_Items->AddBar(Item,TVariant("Summary"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam()); var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant("")); } // AddItem event - Occurs after a new Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam()); } G2antt1->BeginUpdate(); G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABHEGACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKMIziaQJiYLBIaRgEUTRXASCQxDBKQBSeKkRRtDaOYDnGQYD") + "iCIouQLEIxDKItBSJCKURJkAZZHjeToSR5PMb0dKdAw5I6raShEaaIiqJIXP7Fc7QSA0EgTBIFajgOpQAb+bptW7FVDULTMQS5FCZKasOA7FgOZ4DWjUVpwTZ1Q4LC65" + "bjuaraawKbYbXrFYJQSA8EwjNjDcLuKqcKpvDJsSJIFKxOB2KYtBLMLbzLR5apjLZ0QLSOKRDoMEgRDYGdKjLScGrGao8ABtcBlAZJRjoOo5DJgeCQapUQhNczGQzQSI" + "iBOJZAFSQwRHcJhGh2BZvngMIeA8H4TksA5ylgZBeg8X4GmGX4nniPazneQ5VnKdp9H8P4vD+X57nMRofmgBZ4FgIAoBWdoBGAGAeAgfxfjgNZ1DqWxEA0ASAgA==")); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double())); var_Chart->set_PaneWidth(false,256); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary")); var_Bar->Color = 0x1000000; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaptionHOffset,TVariant(8)); Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar1->Color = RGB(0,0,0); Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"C1"); var_Columns->Add(L"C2"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos"); var_Column->FormatColumn = L"1 pos ``"; var_Column->AllowGroupBy = false; var_Column->Position = 0; var_Column->Width = 48; var_Column->AllowSizing = false; G2antt1->SortBarVisible = true; G2antt1->AllowGroupBy = true; G2antt1->BackColorSortBar = G2antt1->BackColor; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("SubItem A.1")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("SubItem A.2")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("SubItem A.3")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("SubItem A.4")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("SubItem B.1")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("SubItem B.2")); G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->EndUpdate(); |
2176 |
The bar's caption is very difficult to read if any pattern than exPatternSolid is used. Is there any way of displaying the bar's caption (except for displaying the caption outside the bar)
G2antt1->BeginUpdate(); G2antt1->Font->Size = TVariant(long(12)); G2antt1->DefaultItemHeight = 24; G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->Height = 21; var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternDiagCross; var_Chart->set_PaneWidth(false,128); var_Chart->UnitWidth = 24; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("to do")); h = var_Items->AddItem(TVariant("bgcolor")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<bgcolor=FFFFFF> to do </bgcolor>")); h = var_Items->AddItem(TVariant("fgcolor")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<fgcolor=FFFFFF> to do </fgcolor>")); h = var_Items->AddItem(TVariant("sha")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<sha FFFFFF;2;2> to do </sha>")); h = var_Items->AddItem(TVariant("out")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<out 000000><fgcolor=FFFFFF>to do</fgcolor></out></font>")); h = var_Items->AddItem(TVariant("gra")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<fgcolor FFFFFF><gra 000000;1;1>to do</fgcolor>")); G2antt1->EndUpdate(); |
2175 |
How can I change the position of the bar's tooltip
// ToolTip event - Fired when the control prepares the object's tooltip. void __fastcall TForm1::G2antt1ToolTip(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex,VARIANT_BOOL * Visible,long * X,long * Y,long CX,long CY) { OutputDebugString( L"ToolTip" ); OutputDebugString( L"Item" ); OutputDebugString( L"ColIndex" ); OutputDebugString( L"Visible" ); OutputDebugString( L"X" ); OutputDebugString( L"Y" ); OutputDebugString( L"CX" ); OutputDebugString( L"CY" ); X = TVariant(G2antt1->FormatABC(L"value + 8",TVariant(X),TNoParam(),TNoParam())); Y = TVariant(G2antt1->FormatABC(L"value - 8",TVariant(Y),TNoParam(),TNoParam())); } G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_PaneWidth(false,64); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("<b><%=%9 + '/' + %C0%></b><br><upline><dotline>Start: <%=%1%><br>End: <%=%2%><br>Duration: <%=(%2-%1)%><br>Working: <%=%258%>")); var_Chart->LevelCount = 2; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Tasks A")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Tasks B")),TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2174 |
How can I replace the cell's context menu ( while edit mode is running )
// RClick event - Fired when right mouse button is clicked void __fastcall TForm1::G2antt1RClick(TObject *Sender) { OutputDebugString( L"Edit Mode: " ); OutputDebugString( PChar(G2antt1->Editing) ); /* Select the Component\Import Component...\Import a Type Library, to import the following Type Library: ExContextMenu 1.0 Type Library TypeLib: ExContextMenu.dll to define the namespace: Excontextmenulib_tlb */ //#include "EXCONTEXTMENULIB_TLB.h" Excontextmenulib_tlb::IExContextMenuPtr var_ExContextMenu = Variant::CreateObject(L"Exontrol.ContextMenu"); var_ExContextMenu->Items->ToString = L"Check[chk],[sep],Item 1,Item 2,Item 3,Popup(A,B,C)"; OutputDebugString( PChar(var_ExContextMenu->Select(TNoParam(),TNoParam(),TNoParam())) ); } G2antt1->BeginUpdate(); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Column")->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exEditAllowContextMenu,TVariant(false)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item 1")); var_Items->AddItem(TVariant("Item 2")); G2antt1->EndUpdate(); |
2173 |
Is it possible to highlight the column's header once a filter is applied (sample 2)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABO8GACAADACAxRDgMQBQKAAzQFAYbBuGCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwQgmNYDSBMcbwS") + "AsXRYFocJ5gOT6AjKBA2UclEZpajiTY3ABUEgUS5oOBIACqariaQJAAiCRQGiYZyHKaRSwPBKFYDIIjbJheTIDChNVxUcDENQjJqLBIDRzbarye59YBfeBXdgmA4LQbD" + "MRwNgMMQTDqKYbkOQZHbeGKAWTMEZzJj8cxTEqIaBhGTLfojSZMS7UGK1LLtMyHI6kP7sOiLfi2W4/W7XV72F79TzXIa2ZBuO57bhnAZ/VzGNj4PRNezfRqicjsGxcZw" + "Xg+TpQj0ew6gSOw7wSbozjsfYXi8PwMnSc52leHotl+MxjmoXh2nybxOH+SQtnYXx+D2P4vGMB56hQf5PCgBYeDwYBCEo1xggebgKH6IIDBYBgkiAQ5FgYPAhEIRgWGq" + "DBoC4GoCiGCBYhGBQPAWdIQp0eIUiWCZigiJgqgqYpIioJQhmIMhBH0NxjEMag2g2Y4ImYOoOmOSJeDQNxXlOLR3ECUAQICA=")); var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABgsHQAAYAQGKIcBiAKBQAGaAoDDYNwwQwAAxDAKcEwsACEIrjKCRShyCYZRrGUgRCKQahLEiTIhGUYJHgmK4tRoAUgxWCEExrAaQJjjeCQF") + "i6LAtDhPMByfQEZQIGyjkgjNLUcSbG4AKgkCiXfpUAJVP7FcgSABEEigNIxToOU4jFgeCYLQKQRK2RC9GQGFCbLhpYKIahGTYWVheN5XXblez9P7ABQwKCcAwXBp7YIK" + "AT4XBIdYdQ7IL4xGA0AJPFoJC7mOQ5XiYAIBAZ/RL0LCcbxHHafVboQj6JouD5PUDVNY1XBdPynI6CbLhWy6Dq4UZzPwzeBifSHfDjRoJcCZe71KY3GwSEboNA6Kp+QB" + "HAmZoZjSPYIEiF47lOLJVnuYofBwJJHmaQoYj0MIRHeM4/m6cJ8B+fpBHQJ5SGKPYYH8OYMk+P5Bn4fxaAYZAvEIX4RgUWBGgCCAmAqApgkgNgOgMEYlGASoEkQeBWBa" + "BZhggZgagaYRoEwShWA6NZZAMQBAICA==")); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarActive] = 0x2000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1; G2antt1->HeaderHeight = 28; G2antt1->BackColorHeader = RGB(255,255,255); G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"C1")->DisplayFilterButton = true; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C2"); var_Column->DisplayFilterButton = true; var_Column->Filter = L"Item 2"; var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter; var_Columns->Add(L"C3")->DisplayFilterButton = true; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Item 1")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Item 2")); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Item 3")); h = var_Items->AddItem(TVariant("Item 4")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Item 5")); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Item 6")); G2antt1->ApplyFilter(); G2antt1->EndUpdate(); |
2172 |
How can I make the expand/collapse glyphs DPI aware
String size = 2; G2antt1->BeginUpdate(); Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhEGAUHQAAYAQGKIcBiAKBQAGaAoDDYOA4QwAAxDAKcEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBRfIUEghGyNZjgNzQc") + "CQAI8T5IUgARBJIDSMY6DpOIxYHgmC4DEITNLxOK0EhRHCBZrgOCAYhqEY1Ro+dhPFYjVTMdK0LRtKy7Mq2aJmOpZDxWE7dZKpO5fbxXS67cr2fp/YBed4rfa7KTlOBK" + "cRQRBEFQPDqPZBkORZHh2FoLRJKbgtHJmHYNQWhVyYBbNCyTI6lahpeuHBx1QaWWxjbCMEr6bpoWLbFi3Ha1UzrPa8b5vSw7Gr+HzYQTHGPXGqaYJdZrnea6B7+U5XUJ" + "rnSOZciYHwhAeR5HDK+JVGqKRRmScx5HyfRei+H5bmmcp4Fi8o/CGGJKGQKZUGoFQigUPIiCeSZXnyHB6l0SAJn8JxfkIeZ5CgXxjCCAhyB8QgIlAM4MlKAIcCaIBIGY" + "GoGGEYhqBMMxgnICgRDUDQjESGwmAkWBuCqBoiHIVgkDQYgYESWg2E0YhohcJQigITg3CQSRyEyEYGGOWJwhQJD4FiFIMk0aJFGsIBkkOBJeDc+AchYJwJgIWhSgYZQp" + "FIVoVGOGQ4l2EwIBWMhgDmDhThCEwkAiaJchKDhjhgZhsCUY4iFCEoZkiaYQmSGAWhWQhgDuDpTjCDQiEgchAg0IpJBoDoFiEKBqCaCAimgIguH8IZnkPUhcBcJg+hGJ" + "ZnloYJsiaKZKGa24YnWSR0CkKhCA2CxlCqColhAYpqEKER0DqVZ0A0ASAgA==")); var_Appearance->Add(4,TVariant(String("gBFLBCJwBAEHhEJAAEhABAQCg6AADACAxRDgMQBQKAAzQFAYbBwHCGAAGIYBTgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACjeQYJBCNYbTJAbqhY") + "IgAR3HqQZABCCSQKkYx0HScRiwPBMFwGIQmaaicZoJCiN4DTZAcIBRDUIxpDR9bBeKw3KqVaZnWhaNpWXZlTzKdSxXisF67RZSdi/XgvF5XXblez9P69LwXe5mUrGbyV" + "YghCCIKgeG4dR7IMhyLDcKQXCCVW7aGSsOwbAqAXpdGAXTQdDyLJKnaZqOi6BjjA4rNbHGIYJb1XTRMa1LJuG5LJrOeZ3Xre4BLfh1VoFRpjWIYNY1QS7TLOczzfRdDx" + "TiGVpkjCeJoD4Ng1hSRxiisVRKg8D4PkWZJznmPQ+F8Xx5guWpjHGWYMiYQodEaIRSCgU5KCSeh3naHB/iAAh9n8fwfgIeZ1CgXwjCCAhxl8AgIlAM4MlKAIcCaD54FY" + "FoFmGCBmBaBIJigPJNgKSAoDSVC+BIbIYCUYYoiYKoJgkWIMlGCAglMaJZDWCYiFyFIJkkOJYhEJc7G4PYPCOaJshQJBjgiVIUgyDRokEaggGSQ4El4N1CBiFgnAmAha" + "FKFZlFkShUhWJRYmITg3GSQgFGuGBOGOFJkCSSQCDoNgkiOCY0hUJJmmmQhvhqZtYmUOQmBWIRvhgTpjjSbAjEiEgchBZgyEaBIhigWgegqIhIjoDILiACB5nTL5WnWR" + "YOiSKYJnqGQ7CmOh2hqJ5OkYORxFyShKhSAxihkOomioY5YiqFIkFyTo1HkAxAEAgIA==")); var_Appearance->Add(1,TVariant(G2antt1->FormatABC(L"`CP:3 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)",TVariant(size),TNoParam(),TNoParam()))); var_Appearance->Add(2,TVariant(G2antt1->FormatABC(L"`CP:4 -` + int(value*dpi) + ` -` + int(value*dpi) + ` ` + int(value*dpi) + ` ` + int(value*dpi)",TVariant(size),TNoParam(),TNoParam()))); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesAtRoot; G2antt1->HasButtons = Exg2anttlib_tlb::ExpandButtonEnum::exCustom; G2antt1->HasButtonsCustom[false] = 16777216; G2antt1->HasButtonsCustom[true] = 33554432; G2antt1->Columns->Add(L"Column"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Root 2")); var_Items->InsertItem(h,TNoParam(),TVariant("Child")); G2antt1->EndUpdate(); |
2171 |
Is it possible to highlight the column's header once a filter is applied (sample 1)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgAN") + "J0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8Y" + "NYuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4" + "hhKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mg" + "bhOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhW" + "BMJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=")); var_Appearance->Add(1,TVariant("CP:2 -8 -4 2 4")); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1fefefe; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarActive] = 0x1010101; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1; G2antt1->HeaderHeight = 28; G2antt1->BackColorHeader = RGB(255,255,255); G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"C1")->DisplayFilterButton = true; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C2"); var_Column->DisplayFilterButton = true; var_Column->Filter = L"Item 2"; var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter; var_Columns->Add(L"C3")->DisplayFilterButton = true; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Item 1")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Item 2")); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Item 3")); h = var_Items->AddItem(TVariant("Item 4")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Item 5")); var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("Item 6")); G2antt1->ApplyFilter(); G2antt1->EndUpdate(); |
2170 |
How do I update itemcount and matchitemcount of the FilterBarCaption after I added the item using the AddItem method
// Click event - Occurs when the user presses and then releases the left mouse button over the tree control. void __fastcall TForm1::G2antt1Click(TObject *Sender) { G2antt1->Items->AddItem(TVariant("new")); G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Item"); var_Column->DisplayFilterButton = true; var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc; Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Pos"); var_Column1->AllowSizing = false; var_Column1->AllowSort = false; var_Column1->Width = 32; var_Column1->FormatColumn = L"1 apos ``"; var_Column1->Position = 0; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item A")); var_Items->AddItem(TVariant("Item B")); var_Items->AddItem(TVariant("Item C")); G2antt1->FilterBarCaption = TVariant(String("`<r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount + 1") + ") + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )"); G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseOnRight | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseIfRequired | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible; G2antt1->EndUpdate(); |
2169 |
The Edit method does not work while ReadOnly property is exLocked and the first column is hidden. Is there any fix
// DblClick event - Occurs when the user dblclk the left mouse button over an object. void __fastcall TForm1::G2antt1DblClick(TObject *Sender,short Shift,int X,int Y) { long var_ItemFromPoint = G2antt1->ItemFromPoint[-1,-1,c,hit]; G2antt1->FocusColumnIndex = c; G2antt1->Edit(TNoParam()); } G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->AutoEdit = false; G2antt1->ReadOnly = Exg2anttlib_tlb::ReadOnlyEnum::exLocked; G2antt1->AutoSearch = true; G2antt1->Columns->Add(L"")->Visible = false; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Contains"); var_Column->AutoSearch = Exg2anttlib_tlb::AutoSearchEnum::exContains; var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(1),TVariant("Tom Hanks")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(1),TVariant("Leonardo DiCaprio")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(1),TVariant("Will Smith")); var_Items->set_CellValue(TVariant(var_Items->AddItem(TNoParam())),TVariant(1),TVariant("Tom Cruise")); G2antt1->EndUpdate(); |
2168 |
How can I highlight the cell's button with a different appearance, when cursor hovers it
G2antt1->BeginUpdate(); G2antt1->VisualAppearance->Add(1,TVariant("c:\\exontrol\\images\\normal.ebn")); G2antt1->DefaultItemHeight = 22; G2antt1->TreeColumnIndex = -1; G2antt1->SelForeColor = RGB(0,0,0); G2antt1->SelBackColor = G2antt1->BackColor; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverCellButton] = 0x1000000; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Buttons"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1)); var_Column->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment; var_Column->HeaderAlignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Button <b>1</b>")); var_Items->AddItem(TVariant("Button <b>2</b>")); var_Items->AddItem(TVariant("Button <b>3</b>")); G2antt1->EndUpdate(); |
2167 |
How to group one or more operations into a block when the user do undo or redo
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->AllowUndoRedo = true; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,20).operator double())); var_Chart->AllowLinkBars = true; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->StartBlockUndoRedo(); var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2005,6,23).operator double()),TVariant(TDateTime(2005,6,27).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2005,6,28).operator double()),TVariant(TDateTime(2005,7,2).operator double()),TVariant(""),TNoParam()); var_Items->AddLink(TVariant("L1"),var_Items->get_ItemByIndex(0),TVariant(""),var_Items->get_ItemByIndex(1),TVariant("")); var_Items->EndBlockUndoRedo(); long h = var_Items->get_ItemByIndex(1); Exg2anttlib_tlb::INotePtr var_Note = G2antt1->Chart->Notes->Add(TVariant("NoteD"),TVariant(h),TVariant(TDateTime(2005,6,26).operator double()),L"CTRL+Z (undo), CTRL+Y (redo)"); var_Note->set_PartShadow(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false); var_Note->set_PartToolTip(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,L"Press CTRL+Z to undo <br> and then press CTRL+Y to redo"); var_Note->set_PartTransparency(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,25); var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,-2); var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,RGB(255,255,0)); G2antt1->EndUpdate(); |
2166 |
I am using the Link property to customize the link, but when I press redo it (CTRL+Y) to redo it, not all properties are restored. What can be done
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->AllowUndoRedo = true; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,20).operator double())); var_Chart->AllowLinkBars = true; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2005,6,23).operator double()),TVariant(TDateTime(2005,7,1).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2005,6,27).operator double()),TVariant(TDateTime(2005,7,4).operator double()),TVariant(""),TNoParam()); var_Items->StartBlockUndoRedo(); var_Items->AddLink(TVariant("L1"),var_Items->get_ItemByIndex(0),TVariant(""),var_Items->get_ItemByIndex(1),TVariant("")); long u = var_Items->get_StartUpdateLink(TVariant("L1")); var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkWidth,TVariant(2)); var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkText,TVariant("<fgcolor FF0000>CTRL+Z (undo), CTRL+Y (redo)")); var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkToolTip,TVariant("Press CTRL+Z to undo <br> and then press CTRL+Y to redo")); var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkStartPos,TVariant(0)); var_Items->set_Link(TVariant("L1"),Exg2anttlib_tlb::LinkPropertyEnum::exLinkColor,TVariant(255)); var_Items->EndUpdateLink(u); var_Items->EndBlockUndoRedo(); G2antt1->EndUpdate(); |
2165 |
I am using the ItemBar property to customize the task, but when I press redo it (CTRL+Y) to redo it, not all properties are restored. What can be done
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->AllowUndoRedo = true; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,20).operator double())); var_Chart->AllowLinkBars = true; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->Bars->get_Item(TVariant("Task"))->Height = 16; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2005,6,21).operator double()),TVariant(TDateTime(2005,6,30).operator double()),TVariant(""),TNoParam()); long h = var_Items->AddItem(TVariant("Task 2")); var_Items->StartBlockUndoRedo(); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2005,6,27).operator double()),TVariant(TDateTime(2005,7,4).operator double()),TVariant(""),TVariant("CTRL+Z (undo), CTRL+Y (redo)")); long u = var_Items->get_StartUpdateBar(h,TVariant("")); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255)); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarToolTip,TVariant("Press CTRL+Z to undo <br> and then press CTRL+Y to redo")); var_Items->EndUpdateBar(u); var_Items->EndBlockUndoRedo(); G2antt1->EndUpdate(); |
2164 |
The incremental search feature is no working for columns with editor assigned. What can be done
// DblClick event - Occurs when the user dblclk the left mouse button over an object. void __fastcall TForm1::G2antt1DblClick(TObject *Sender,short Shift,int X,int Y) { G2antt1->Edit(TNoParam()); } G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->AutoEdit = false; G2antt1->AutoSearch = true; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Contains"); var_Column->AutoSearch = Exg2anttlib_tlb::AutoSearchEnum::exContains; var_Column->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Tom Hanks")); var_Items->AddItem(TVariant("Leonardo DiCaprio")); var_Items->AddItem(TVariant("Will Smith")); var_Items->AddItem(TVariant("Tom Cruise")); G2antt1->EndUpdate(); |
2163 |
Each item is representated by a key as string. Is it possible to have a drop down editor to display more information when using the item's key
G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Multiple-Columns Tree DropDownListType")->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType; var_Editor->AddItem(0,L"KR|Korea, Republic of",TNoParam()); var_Editor->AddItem(1,L"MO|Macao",TNoParam()); var_Editor->AddItem(2,L"SA|Saudi Arabia",TNoParam()); var_Editor->AddItem(3,L"EG|Egypt",TNoParam()); var_Editor->AddItem(4,L"GB|United Kingdom",TNoParam()); var_Editor->AddItem(5,L"GT|Guatemala",TNoParam()); var_Editor->AddItem(6,L"SR|Suriname",TNoParam()); var_Editor->AddItem(7,L"BM|Bermuda",TNoParam()); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("EG")); var_Items->AddItem(TVariant("GB")); var_Items->AddItem(TVariant("BM")); G2antt1->EndUpdate(); |
2162 |
My table includes codes/keys for items, can I display a drop down editor to include more information
G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Multiple-Columns DropDownListType")->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType; var_Editor->DropDownAutoWidth = Exg2anttlib_tlb::DropDownWidthType::exDropDownEditorWidth; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exDropDownColumnCaption,TVariant("City¦Coordinates¦State")); var_Editor->AddItem(0,L"JV3|Jollyville¦3026N 09746W¦Texas",TNoParam()); var_Editor->AddItem(1,L"TMO|Altamont¦4021N 11017W¦Utah",TNoParam()); var_Editor->AddItem(2,L"IIM|Williamston¦4241N 08417W¦Michigan",TNoParam()); var_Editor->AddItem(3,L"IWN|Merrittstown¦3958N 07952W¦Pennsylvania",TNoParam()); var_Editor->AddItem(4,L"HOU|Houston¦2945N 09521W¦Texas",TNoParam()); var_Editor->AddItem(5,L"GSF|Gales Ferry¦4125N 07205W¦Connecticut",TNoParam()); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("HOU")); var_Items->AddItem(TVariant("IIM")); var_Items->AddItem(TVariant("TMO")); G2antt1->EndUpdate(); |
2161 |
How can I display and select from a multiple-columns tree editor
G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") + "lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" + "0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" + "NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Multiple-Columns Tree DropDownListType")->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType; var_Editor->DropDownAutoWidth = Exg2anttlib_tlb::DropDownWidthType::exDropDownEditorWidth; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exDropDownColumnCaption,TVariant("Name¦Title¦City¦Phone")); var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exDropDownColumnWidth,TVariant("224¦¦¦96")); var_Editor->AddItem(1,L"Nancy Davolio¦Sales Representative¦Seattle¦(206) 555-9857",TVariant(1)); var_Editor->AddItem(2,L"Andrew Fuller¦<b>Vice President</b>, Sales¦Tacoma¦(206) 555-9482",TVariant(2)); var_Editor->InsertItem(3,L"Janet Leverling¦Sales Representative¦Kirkland¦(206) 555-3412",TVariant(3),TVariant(2)); var_Editor->InsertItem(4,L"Peacock Margaret¦Sales Representative¦Redmond¦(206) 555-8122",TVariant(3),TVariant(2)); var_Editor->InsertItem(5,L"Steven Buchanan¦Sales Manager¦London¦(71) 555-4848",TVariant(2),TVariant(2)); var_Editor->InsertItem(6,L"Michael Suyama¦Sales Representative¦London¦(71) 555-7773",TVariant(1),TVariant(5)); var_Editor->InsertItem(7,L"Robert King¦Sales Representative¦Kirkland¦(71) 555-5598",TVariant(2),TVariant(2)); var_Editor->InsertItem(8,L"Laura Callahan¦Inside Sales Coordinator¦Seattle¦(206) 555-1189",TVariant(3),TVariant(2)); var_Editor->InsertItem(9,L"Anne Dodsworth¦Sales Representative¦London¦(71) 555-4444",TVariant(2),TVariant(5)); var_Editor->ExpandAll(); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant(1)); var_Items->AddItem(TVariant(2)); var_Items->AddItem(TVariant(4)); G2antt1->EndUpdate(); |
2160 |
Does you control support multiple-columns for a drop down editor
G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(true,0); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IEditorPtr var_Editor = G2antt1->Columns->Add(L"Multiple-Columns DropDownListType")->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::DropDownListType; var_Editor->DropDownAutoWidth = Exg2anttlib_tlb::DropDownWidthType::exDropDownEditorWidth; var_Editor->AddItem(0,L"Jollyville¦JV3¦3026N 09746W¦TX",TNoParam()); var_Editor->AddItem(1,L"Altamont¦TMO¦4021N 11017W¦UT",TNoParam()); var_Editor->AddItem(2,L"Williamston¦IIM¦4241N 08417W¦MI",TNoParam()); var_Editor->AddItem(3,L"Merrittstown¦IWN¦3958N 07952W¦PA",TNoParam()); var_Editor->AddItem(4,L"Houston¦HOU¦2945N 09521W¦TX",TNoParam()); var_Editor->AddItem(5,L"Gales Ferry¦GSF¦4125N 07205W¦CT",TNoParam()); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->InsertItem(0,TVariant(""),TVariant(1)); var_Items->InsertItem(0,TVariant(""),TVariant(2)); var_Items->InsertItem(0,TVariant(""),TVariant(4)); G2antt1->EndUpdate(); |
2159 |
Is it possible to change the summary-bar's start or/and end margins
G2antt1->BeginUpdate(); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->ColumnAutoResize = false; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exNoCreateBar; var_Chart->AllowLinkBars = false; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2008,1,1).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,256); G2antt1->Columns->Add(L"Members")->Width = 96; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Start"); var_Column->Width = 112; var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1)); var_Column->set_LevelKey(TVariant(1)); Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"End"); var_Column1->Width = 112; var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2)); var_Column1->set_LevelKey(TVariant(1)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AllowCellValueToItemBar = true; long hR1 = var_Items->AddItem(TVariant("Team")); var_Items->AddBar(hR1,TVariant("Summary"),TVariant(TDateTime(2008,1,2).operator double()),TVariant(TDateTime(2008,1,8).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(hR1,TVariant(""),TVariant(TDateTime(2008,1,13).operator double()),TVariant(TDateTime(2008,1,13).operator double()),TVariant("R"),TNoParam()); var_Items->set_ItemBar(hR1,TVariant("R"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTransparent,TVariant(100)); var_Items->DefineSummaryBars(hR1,TVariant(""),h1,TVariant("R")); long h1 = var_Items->InsertItem(hR1,TNoParam(),TVariant("Member 1")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2008,1,2).operator double()),TVariant(TDateTime(2008,1,7).operator double()),TNoParam(),TNoParam()); var_Items->DefineSummaryBars(hR1,TVariant(""),h1,TVariant("")); h1 = var_Items->InsertItem(hR1,TNoParam(),TVariant("Member 2")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2008,1,4).operator double()),TVariant(TDateTime(2008,1,9).operator double()),TNoParam(),TNoParam()); var_Items->DefineSummaryBars(hR1,TVariant(""),h1,TVariant("")); h1 = var_Items->InsertItem(hR1,TNoParam(),TVariant("Member 3")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2008,1,5).operator double()),TVariant(TDateTime(2008,1,10).operator double()),TNoParam(),TNoParam()); var_Items->DefineSummaryBars(hR1,TVariant(""),h1,TVariant("")); var_Items->set_ExpandItem(hR1,true); G2antt1->EndUpdate(); |
2158 |
I want to display two lines/curves in the histogram-area such as expected and actual work effor per month. How can I do that (leaf)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_PaneWidth(false,128); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,10,5).operator double())); var_Chart->HistogramVisible = true; var_Chart->HistogramHeight = 96; var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramRecLeafItems | Exg2anttlib_tlb::HistogramViewEnum::exHistogramLeafItems | Exg2anttlib_tlb::HistogramViewEnum::exHistogramUnlockedItems; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exRectangularCurve; var_Bar->HistogramItems = -4; var_Bar->HistogramBorderSize = 1; Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"C"); var_Bar1->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exRectangularCurve; var_Bar1->HistogramItems = -4; var_Bar1->HistogramColor = RGB(255,0,0); var_Bar1->HistogramBorderSize = 2; G2antt1->Columns->Add(L"Column"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project A")); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,14).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2020,10,10).operator double()),TVariant(TDateTime(2020,10,17).operator double()),TNoParam(),TNoParam()); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Project B")); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1")),TVariant("C"),TVariant(TDateTime(2020,10,13).operator double()),TVariant(TDateTime(2020,10,20).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2")),TVariant("C"),TVariant(TDateTime(2020,10,15).operator double()),TVariant(TDateTime(2020,10,23).operator double()),TNoParam(),TNoParam()); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2157 |
I want to display two lines/curves in the histogram-area such as expected and actual work effor per month. How can I do that (flat)
// BarResize event - Occurs when a bar is moved or resized. void __fastcall TForm1::G2antt1BarResize(TObject *Sender,Exg2anttlib_tlb::HITEM Item,Variant Key) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEffort,TVariant(var_Items->get_ItemBar(Item,TVariant(Key),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent))); var_Items->set_ItemBar(Item,TVariant("C"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEffort,TVariant(1)); } G2antt1->BeginUpdate(); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,10,5).operator double())); var_Chart->set_PaneWidth(false,128); var_Chart->LevelCount = 2; var_Chart->HistogramHeight = 96; var_Chart->HistogramVisible = true; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task%Progress"); var_Bar->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exRectangularCurve; var_Bar->HistogramItems = -4; var_Bar->HistogramBorderSize = 1; var_Bar->HistogramBorderColor = var_Bar->Color; var_Bar->Shortcut = L"P"; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarShowPercentCaption,TVariant(true)); Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"C"); var_Bar1->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exRectangularCurve; var_Bar1->HistogramColor = RGB(255,0,0); var_Bar1->HistogramBorderSize = 2; G2antt1->Columns->Add(L"Tasks")->FormatColumn = L"`Task ` + (1 index ``)"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TNoParam()); var_Items->AddBar(h,TVariant("P"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,14).operator double()),TVariant("P"),TNoParam()); var_Items->set_ItemBar(h,TVariant("P"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent,TVariant(0.5)); var_Items->AddBar(h,TVariant("C"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,14).operator double()),TVariant("C"),TNoParam()); var_Items->set_ItemBar(h,TVariant("C"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTransparent,TVariant(100)); var_Items->GroupBars(h,TVariant("P"),true,h,TVariant("C"),true,TNoParam(),TNoParam()); var_Items->GroupBars(h,TVariant("P"),false,h,TVariant("C"),false,TNoParam(),TNoParam()); h = var_Items->AddItem(TNoParam()); var_Items->AddBar(h,TVariant("P"),TVariant(TDateTime(2020,10,10).operator double()),TVariant(TDateTime(2020,10,17).operator double()),TVariant("P"),TNoParam()); var_Items->set_ItemBar(h,TVariant("P"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent,TVariant(0.75)); var_Items->AddBar(h,TVariant("C"),TVariant(TDateTime(2020,10,10).operator double()),TVariant(TDateTime(2020,10,17).operator double()),TVariant("C"),TNoParam()); var_Items->set_ItemBar(h,TVariant("C"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTransparent,TVariant(100)); var_Items->GroupBars(h,TVariant("P"),true,h,TVariant("C"),true,TNoParam(),TNoParam()); var_Items->GroupBars(h,TVariant("P"),false,h,TVariant("C"),false,TNoParam(),TNoParam()); h = var_Items->AddItem(TNoParam()); var_Items->AddBar(h,TVariant("P"),TVariant(TDateTime(2020,10,13).operator double()),TVariant(TDateTime(2020,10,20).operator double()),TVariant("P"),TNoParam()); var_Items->set_ItemBar(h,TVariant("P"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarPercent,TVariant(0.25)); var_Items->AddBar(h,TVariant("C"),TVariant(TDateTime(2020,10,13).operator double()),TVariant(TDateTime(2020,10,20).operator double()),TVariant("C"),TNoParam()); var_Items->set_ItemBar(h,TVariant("C"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTransparent,TVariant(100)); var_Items->GroupBars(h,TVariant("P"),true,h,TVariant("C"),true,TNoParam(),TNoParam()); var_Items->GroupBars(h,TVariant("P"),false,h,TVariant("C"),false,TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2156 |
Is it possible to show the filterbar on top of the rows
G2antt1->BeginUpdate(); G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarTop; G2antt1->HeaderHeight = 24; G2antt1->FilterBarHeight = G2antt1->HeaderHeight; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Column"); var_Column->DisplayFilterButton = true; var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern; var_Column->Filter = L"B*"; Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Index"); var_Column1->FormatColumn = L"1 index ``"; var_Column1->Position = 0; var_Column1->Width = 48; var_Column1->AllowSizing = false; var_Column1->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric; var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("A.1")); var_Items->AddItem(TVariant("A.2")); var_Items->AddItem(TVariant("B.1")); var_Items->AddItem(TVariant("B.2")); var_Items->AddItem(TVariant("B.3")); var_Items->AddItem(TVariant("C")); G2antt1->ApplyFilter(); G2antt1->EndUpdate(); |
2155 |
The deadline symbol is now a white arrow and it is difficult to see. I want to create a green or black arrow for showing deadline
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,96); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Deadline")); var_Bar->StartColor = RGB(0,128,0); var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconDown3; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Deadline"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2154 |
DragDrop (with visual effect)
// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur. void __fastcall TForm1::G2antt1OLEDragDrop(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * Effect,short Button,short Shift,int X,int Y) { // SelectItem(InsertItem(i,, Data.GetData(1))) = True long i = G2antt1->ItemFromPoint[-1,-1,c,hit]; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ExpandItem(i,true); } // OLEStartDrag event - Occurs when the OLEDrag method is called. void __fastcall TForm1::G2antt1OLEStartDrag(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * AllowedEffects) { // Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1) AllowedEffects = 1; } G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABPUIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRjEEQDCKYcxHCaIBiGcaIfDEBIeSBHcgRbAcOQHGSZZBhGRJG") + "juKIbSrLICzBDUcRnGwAKQoaaaEomHwyAZOYwDAIoWhpKKCKjqWJKNb+XgAAJTES0RRVRTNAZ1YghGAQgIA==")); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exListOLEDropPosition] = 0x1000000; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exChartOLEDropPosition] = RGB(1,0,0); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropBefore] = RGB(0,0,0); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropAfter] = RGB(255,255,255); G2antt1->OLEDropMode = Exg2anttlib_tlb::exOLEDropModeEnum::exOLEDropManual; G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAnyOnRight; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->Indent = 16; G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->Columns->Add(L"Default"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); OutputDebugString( L"You can:" ); OutputDebugString( L"A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" ); OutputDebugString( L"B) right-click to re-arrange the item position inside the same control" ); OutputDebugString( L"This sample shows how you can insert the data being dropped as a child of the item being hovered." ); |
2153 |
DragDrop (with no visual effect, hide item while drag and drop)
// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur. void __fastcall TForm1::G2antt1OLEDragDrop(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * Effect,short Button,short Shift,int X,int Y) { // SelectItem(InsertItem(i,, Data.GetData(1))) = True long i = G2antt1->ItemFromPoint[-1,-1,c,hit]; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ExpandItem(i,true); } // OLEStartDrag event - Occurs when the OLEDrag method is called. void __fastcall TForm1::G2antt1OLEStartDrag(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * AllowedEffects) { // Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1) AllowedEffects = 1; } G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropBefore] = RGB(0,0,0); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDragDropAfter] = RGB(255,255,255); G2antt1->OLEDropMode = Exg2anttlib_tlb::exOLEDropModeEnum::exOLEDropManual; G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAnyOnRight; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->Indent = 16; G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->Columns->Add(L"Default"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); OutputDebugString( L"You can:" ); OutputDebugString( L"A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" ); OutputDebugString( L"B) right-click to re-arrange the item position inside the same control" ); OutputDebugString( L"This sample shows how you can insert the data being dropped as a child of the item being hovered." ); |
2152 |
DragDrop
// OLEDragDrop event - Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur. void __fastcall TForm1::G2antt1OLEDragDrop(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * Effect,short Button,short Shift,int X,int Y) { // SelectItem(InsertItem(i,, Data.GetData(1))) = True long i = G2antt1->ItemFromPoint[-1,-1,c,hit]; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ExpandItem(i,true); } // OLEStartDrag event - Occurs when the OLEDrag method is called. void __fastcall TForm1::G2antt1OLEStartDrag(TObject *Sender,Exg2anttlib_tlb::IExDataObject *Data,long * AllowedEffects) { // Data.SetData(Me.Items.CellCaption(FocusItem, 0), 1) AllowedEffects = 1; } G2antt1->OLEDropMode = Exg2anttlib_tlb::exOLEDropModeEnum::exOLEDropManual; G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAnyOnRight; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->Indent = 16; G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->Columns->Add(L"Default"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); OutputDebugString( L"You can:" ); OutputDebugString( L"A) left-click to drag and drop items between controls (open a new exhelper and run the same sample)" ); OutputDebugString( L"B) right-click to re-arrange the item position inside the same control" ); OutputDebugString( L"This sample shows how you can insert the data being dropped as a child of the item being hovered." ); |
2151 |
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header (non-clickable)
G2antt1->BeginUpdate(); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Item"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos"); var_Column->Position = 0; var_Column->Width = 32; var_Column->AllowSizing = false; var_Column->FormatColumn = L"1 index ``"; var_Column->AllowSort = false; var_Column->AllowDragging = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item A")); var_Items->AddItem(TVariant("Item B")); var_Items->AddItem(TVariant("Item C")); G2antt1->EndUpdate(); |
2150 |
Is there anyway to stop the header changing colour when the mouse hovers/moves across the column header
G2antt1->BeginUpdate(); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Item"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos"); var_Column->Position = 0; var_Column->Width = 32; var_Column->AllowSizing = false; var_Column->FormatColumn = L"1 index ``"; var_Column->AllowSort = false; var_Column->AllowDragging = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item A")); var_Items->AddItem(TVariant("Item B")); var_Items->AddItem(TVariant("Item C")); G2antt1->EndUpdate(); |
2149 |
How can I detect the last visible item
// SelectionChanged event - Fired after a new item has been selected. void __fastcall TForm1::G2antt1SelectionChanged(TObject *Sender) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; OutputDebugString( PChar(var_Items->get_NextVisibleItem(var_Items->FocusItem)) ); } G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->AutoDrag = Exg2anttlib_tlb::AutoDragEnum::exAutoDragPositionAny; G2antt1->Columns->Add(L"Column"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->InsertItem(var_Items->AddItem(TVariant("Item 1")),TNoParam(),TVariant("Child 1")); var_Items->AddItem(TVariant("Item 2")); var_Items->AddItem(TVariant("Item 3")); var_Items->InsertItem(var_Items->AddItem(TVariant("Item 4")),TNoParam(),TVariant("Child 4")); var_Items->AddItem(TVariant("Item 5")); G2antt1->EndUpdate(); |
2148 |
Is it possible to show the non-working part on the back (behind the item's background)
// CellStateChanged event - Fired after cell's state has been changed. void __fastcall TForm1::G2antt1CellStateChanged(TObject *Sender,Exg2anttlib_tlb::HITEM Item,long ColIndex) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside; G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; G2antt1->DefaultItemHeight = 22; G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); var_Column->PartialCheck = true; Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance; var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEc") + "x9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJc" + "FqXFSLVxNBKAQEBA=")); var_Appearance->Add(4,TVariant(String("gBFLBCJwBAEHhEJAAEhABTcIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRiBMIxAKIZhzEiJYgGIZxYh8MQER5IEbyBDsBw5AaZZojGRJG") + "igNIqSxLUhTRKUdQrG4AKQnGhpDgmJYnU5EcrSUKQcw/JaiKYpGZYXpqO5OTzUIyVHDdKgFGKNKwjKiKKp6FofDJcADUcKAYBKFoaLjgS5bXhSGpnV5bFoWdLTVwhBKA" + "QEBA=")); var_Appearance->Add(1,TVariant("CP:2 1 1 -1 -1")); var_Appearance->Add(3,TVariant("CP:4 1 1 -1 -1")); Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%CS0 = 1",TNoParam()); var_ConditionalFormat->BackColor = 0x3000000; var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,8,1).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); var_Chart->Bars->get_Item(TVariant("Task"))->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary")); var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty; var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty; var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolidDown; var_Chart->SelBackColor = G2antt1->SelBackColor; var_Chart->SelBarColor = RGB(128,128,128); var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; var_Chart->NonworkingDaysPattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid; var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesBehind | Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project")); long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 1")); var_Items->AddBar(hChild,TVariant("Task"),TVariant(TDateTime(2017,8,2).operator double()),TVariant(TDateTime(2017,8,8).operator double()),TNoParam(),TNoParam()); var_Items->set_SelectItem(hChild,true); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 2")); var_Items->AddBar(hChild,TVariant("Task"),TVariant(TDateTime(2017,8,3).operator double()),TVariant(TDateTime(2017,8,10).operator double()),TNoParam(),TNoParam()); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 3")); var_Items->AddBar(hChild,TVariant("Task"),TVariant(TDateTime(2017,8,4).operator double()),TVariant(TDateTime(2017,8,12).operator double()),TNoParam(),TNoParam()); var_Items->set_CellState(TVariant(hChild),TVariant(0),1); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 4")); var_Items->AddBar(hChild,TVariant("Task"),TVariant(TDateTime(2017,8,5).operator double()),TVariant(TDateTime(2017,8,14).operator double()),TNoParam(),TNoParam()); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 5")); var_Items->AddBar(hChild,TVariant("Task"),TVariant(TDateTime(2017,8,6).operator double()),TVariant(TDateTime(2017,8,16).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(h,TVariant("Summary"),TVariant(TDateTime(2017,8,1).operator double()),TVariant(TDateTime(2017,8,1).operator double()),TVariant("sum"),TNoParam()); var_Items->DefineSummaryBars(h,TVariant("sum"),-3,TVariant("")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("ItemBackColor")); var_Items->AddBar(h,TVariant("Progress"),TVariant(TDateTime(2017,8,4).operator double()),TVariant(TDateTime(2017,8,14).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBackColor(h,0x18080ff); G2antt1->Chart->set_ItemBackColor(h,0x18080ff); G2antt1->EndUpdate(); |
2147 |
How can I hide a bar within the control's overview (sample 1)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Default"); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(190,190,190); G2antt1->BackColorLevelHeader = G2antt1->BackColor; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->OverviewHeight = 48; var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,1,1).operator double())); var_Chart->Bars->Copy(L"Task",L"TaskO")->Color = RGB(255,0,0); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->set_ItemBar(h,TVariant("K1"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarOverviewColor,TVariant(-1)); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); var_Items->set_ItemBar(h,TVariant("K2"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarOverviewColor,TVariant(-1)); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); G2antt1->EndUpdate(); |
2146 |
How can I hide all bars within the control's overview (sample 2)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Default"); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(190,190,190); G2antt1->BackColorLevelHeader = G2antt1->BackColor; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->OverviewHeight = 48; var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewHideBars | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowOnlyVisible; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,1,1).operator double())); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Copy(L"Task",L"TaskO"); var_Bar->OverviewColor = -1; var_Bar->Color = RGB(255,0,0); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); G2antt1->EndUpdate(); |
2145 |
How can I hide all bars or specified type within the control's overview (sample 3)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Default"); G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSplitBar] = RGB(190,190,190); G2antt1->BackColorLevelHeader = G2antt1->BackColor; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,64); var_Chart->OverviewHeight = 48; var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewSplitter | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowMargins | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,1,1).operator double())); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Copy(L"Task",L"TaskO"); var_Bar->OverviewColor = -1; var_Bar->Color = RGB(255,0,0); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("TaskO"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); h = var_Items->AddItem(TVariant("")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,1,2).operator double()),TVariant(TDateTime(2020,1,12).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2020,12,2).operator double()),TVariant(TDateTime(2020,12,12).operator double()),TVariant("K2"),TNoParam()); G2antt1->EndUpdate(); |
2144 |
Is it possible to exclude the parent/child items when do the filtering, so to include only items that match the filter without any indentation
// AddItem event - Occurs after a new Item has been inserted to Items collection. void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item) { G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TNoParam(),TNoParam()); } // FilterChange event - Occurs when the filter was changed. void __fastcall TForm1::G2antt1FilterChange(TObject *Sender) { G2antt1->Indent = G2antt1->FormatABC(L"value > 0 ? 18 : 0",->Items->MatchItemCount,TNoParam(),TNoParam()); } G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->Indent = 18; G2antt1->FilterInclude = Exg2anttlib_tlb::FilterIncludeEnum::exMatchingItemsOnly; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exVLines; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,164); Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Column"); var_Column->DisplayFilterButton = true; var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter; var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowCheckBox; var_Column->Filter = L"C1"; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Pos"); var_Column1->FormatColumn = L"1 rindex ``"; var_Column1->Position = 0; var_Column1->AllowSizing = false; var_Column1->AllowDragging = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("R1")); long h2 = var_Items->InsertItem(h,TNoParam(),TVariant("S")); var_Items->InsertItem(h2,TNoParam(),TVariant("C1")); var_Items->InsertItem(h2,TNoParam(),TVariant("C2")); var_Items->InsertItem(h,TNoParam(),TVariant("C1")); var_Items->InsertItem(h,TNoParam(),TVariant("C2")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("R2")); var_Items->InsertItem(h,TNoParam(),TVariant("C1")); var_Items->InsertItem(h,TNoParam(),TVariant("C2")); G2antt1->ApplyFilter(); G2antt1->EndUpdate(); |
2143 |
I am using the Chart.AllowResizeChart property. How can I customize the labels into the chart's levels
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->AllowResizeChart = Exg2anttlib_tlb::ResizeChartEnum::exAllowChangeUnitScale | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartMiddle | Exg2anttlib_tlb::ResizeChartEnum::exAllowResizeChartHeader; var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exYear,L"year"); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exHalfYear,L""); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exQuarterYear,L""); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMonth,L"month"); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exThirdMonth,L""); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exWeek,L"week"); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exDay,L"day"); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exHour,L"hour"); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMinute,L""); var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exSecond,L""); var_Chart->ShowNonworkingDates = false; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,48); var_Chart->UnitWidth = 32; var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exDay; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task A")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,6).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task B")),TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task C")),TVariant("Task"),TVariant(TDateTime(2001,1,10).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TVariant("K1"),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant(""),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("Info"),TVariant("Click the <b>middle</b> mouse button and start dragging")); G2antt1->EndUpdate(); |
2142 |
Is it possible to display the header using multiple lines, while chart display multiple levels (sample 2)
// AddColumn event - Fired after a new column has been added. void __fastcall TForm1::G2antt1AddColumn(TObject *Sender,Exg2anttlib_tlb::IColumn *Column) { // Column.Def(52) = 4 // Column.Def(53) = 4 } G2antt1->BeginUpdate(); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(true,256); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Column"); var_Columns->Add(L"C1")->HTMLCaption = L"<b>C<off 4>1</b><br>left"; var_Columns->Add(L"C2")->HTMLCaption = L"<c><b>C<off 4>2</b><br><c>center"; var_Columns->Add(L"C3")->HTMLCaption = L"<r><b>C<off 4>3</b><br><r>right"; G2antt1->EndUpdate(); |
2141 |
Is there any way to control the z-order of a TimeZone
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_PaneWidth(false,0); var_Chart->UnitWidth = 15; var_Chart->LevelCount = 2; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,12,28).operator double())); var_Chart->MarkTimeZone(TVariant("Top"),TVariant(TDateTime(2010,1,1).operator double()),TVariant(TDateTime(2010,1,5).operator double()),TVariant(16711680),TVariant("1;;<fgcolor=FFFFFF>Top;1")); var_Chart->MarkTimeZone(TVariant("Partial"),TVariant(TDateTime(2010,1,8).operator double()),TVariant(TDateTime(2010,1,12).operator double()),TVariant(16711680),TVariant("50;;<fgcolor=FFFFFF>Partial;1")); var_Chart->MarkTimeZone(TVariant("Default"),TVariant(TDateTime(2010,1,15).operator double()),TVariant(TDateTime(2010,1,19).operator double()),TVariant(16711680),TVariant(";;<fgcolor=FFFFFF>Default;1")); |
2140 |
Is it possible to display the header using multiple lines, while chart display multiple levels (sample 1)
|
2139 |
Difference between HistogramValueFromPoint and HistogramValue (sample 2)
// MouseMove event - Occurs when the user moves the mouse. void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short Button,short Shift,int X,int Y) { Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; Double v1 = var_Chart->get_HistogramValueFromPoint(-1,-1); Double v2 = var_Chart->get_HistogramValue(TVariant(var_Chart->get_DateFromPoint(-1,-1)),TNoParam(),TNoParam()); Double vMin = var_Chart->get_HistogramValue(TVariant("min"),TNoParam(),TNoParam()); Double vMax = var_Chart->get_HistogramValue(TVariant("max"),TNoParam(),TNoParam()); TVariant format = TVariant(G2antt1->FormatABC(L"`<b>ValueFromPoint</b>: ` + A + `<br>ValueFromDate: ` + B",TVariant(v1),TVariant(v2),TNoParam())); format = TVariant(G2antt1->FormatABC(L"A + `<br>Min: ` + B + `<br>Max: ` + C",TVariant(format),TVariant(vMin),TVariant(vMax))); G2antt1->ShowToolTip(L"format",TNoParam(),TNoParam(),TVariant("16"),TVariant("16")); } G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,40); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,9).operator double())); var_Chart->HistogramVisible = true; var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramGroupCumulative | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems; var_Chart->HistogramHeight = 128; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->HistogramPattern = var_Bar->Pattern; var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistCumulative; var_Bar->HistogramItems = -6; var_Bar->HistogramRulerLinesColor = RGB(0,0,1); var_Bar->HistogramBorderSize = 1; var_Bar->HistogramBorderColor = RGB(0,0,1); var_Bar->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exChangeColor; var_Bar->HistogramCumulativeShowLegend = -1; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,10).operator double()),TVariant(TDateTime(2005,6,14).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,11).operator double()),TVariant(TDateTime(2005,6,15).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,12).operator double()),TVariant(TDateTime(2005,6,16).operator double()),TVariant(""),TNoParam()); G2antt1->EndUpdate(); |
2138 |
Difference between HistogramValueFromPoint and HistogramValue (sample 1)
// MouseMove event - Occurs when the user moves the mouse. void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short Button,short Shift,int X,int Y) { Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; Double v1 = var_Chart->get_HistogramValueFromPoint(-1,-1); Double v2 = var_Chart->get_HistogramValue(TVariant(var_Chart->get_DateFromPoint(-1,-1)),TNoParam(),TNoParam()); Double vMin = var_Chart->get_HistogramValue(TVariant("min"),TNoParam(),TNoParam()); Double vMax = var_Chart->get_HistogramValue(TVariant("max"),TNoParam(),TNoParam()); TVariant format = TVariant(G2antt1->FormatABC(L"`<b>ValueFromPoint</b>: ` + A + `<br>ValueFromDate: ` + B",TVariant(v1),TVariant(v2),TNoParam())); format = TVariant(G2antt1->FormatABC(L"A + `<br>Min: ` + B + `<br>Max: ` + C",TVariant(format),TVariant(vMin),TVariant(vMax))); G2antt1->ShowToolTip(L"format",TNoParam(),TNoParam(),TVariant("16"),TVariant("16")); } G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,40); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2005,6,9).operator double())); var_Chart->HistogramVisible = true; var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems; var_Chart->HistogramHeight = 128; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->HistogramPattern = var_Bar->Pattern; var_Bar->HistogramType = Exg2anttlib_tlb::HistogramTypeEnum::exHistOverload; var_Bar->HistogramItems = -6; var_Bar->HistogramRulerLinesColor = RGB(0,0,1); var_Bar->HistogramBorderSize = 1; var_Bar->HistogramBorderColor = RGB(0,0,1); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,10).operator double()),TVariant(TDateTime(2005,6,14).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,11).operator double()),TVariant(TDateTime(2005,6,15).operator double()),TVariant(""),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("Task")),TVariant("Task"),TVariant(TDateTime(2005,6,12).operator double()),TVariant(TDateTime(2005,6,16).operator double()),TVariant(""),TNoParam()); G2antt1->EndUpdate(); |
2137 |
I am using the Inside-Zoom feature, but the inside grid lines are more dashed the dotted
|
2136 |
I am using expressions for exBarEffort, but the histogram does not show correctly the data
G2antt1->BeginUpdate(); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,10,5).operator double())); var_Chart->set_PaneWidth(false,128); var_Chart->LevelCount = 2; var_Chart->HistogramHeight = 96; var_Chart->HistogramVisible = true; var_Chart->AllowInsideZoom = true; var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; Exg2anttlib_tlb::IInsideZoomPtr var_InsideZoom = var_Chart->InsideZooms->Add(TVariant(TDateTime(2020,10,7).operator double())); var_InsideZoom->Width = 196; var_Chart->DefaultInsideZoomFormat->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->HistogramPattern = var_Bar->Pattern; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEffort,TVariant("(hour(value) > 5 and hour(value) < 18) ? 2 : 0")); var_Chart->HistogramUnitScale = Exg2anttlib_tlb::UnitEnum::exHour; G2antt1->Columns->Add(L"Tasks")->FormatColumn = L"`Task ` + (1 index ``)"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("Task"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,12).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("Task"),TVariant(TDateTime(2020,10,8).operator double()),TVariant(TDateTime(2020,10,13).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2135 |
How can I specify the z-order of bars to be shown within the chart's histogram
G2antt1->BeginUpdate(); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,10,5).operator double())); var_Chart->set_PaneWidth(false,128); var_Chart->LevelCount = 2; var_Chart->HistogramHeight = 96; var_Chart->HistogramVisible = true; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"A"); var_Bar->Color = RGB(0,0,255); var_Bar->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid; var_Bar->HistogramItems = -6; var_Bar->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"A",L"B"); var_Bar1->Color = RGB(0,255,0); var_Bar1->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor; var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>")); var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramGroupCumulative | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems; var_Chart->HistogramZOrder = L"A,B"; G2antt1->Columns->Add(L"Tasks")->FormatColumn = L"`Task ` + (1 index ``)"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("A"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,12).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("A"),TVariant(TDateTime(2020,10,8).operator double()),TVariant(TDateTime(2020,10,13).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("B"),TVariant(TDateTime(2020,10,9).operator double()),TVariant(TDateTime(2020,10,14).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("B"),TVariant(TDateTime(2020,10,10).operator double()),TVariant(TDateTime(2020,10,15).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2134 |
How can I show cumulative histogram for two or more different types of bars
G2antt1->BeginUpdate(); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2020,10,5).operator double())); var_Chart->set_PaneWidth(false,128); var_Chart->LevelCount = 2; var_Chart->HistogramHeight = 96; var_Chart->HistogramVisible = true; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"A"); var_Bar->Color = RGB(0,0,255); var_Bar->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exPatternSolid; var_Bar->HistogramItems = -6; var_Bar->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"A",L"B"); var_Bar1->Color = RGB(0,255,0); var_Bar1->HistogramCumulativeOriginalColorBars = Exg2anttlib_tlb::HistogramCumulativeOriginalColorBarsEnum::exKeepOriginalColor; var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>")); var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramGroupCumulative | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems; G2antt1->Columns->Add(L"Tasks")->FormatColumn = L"`Task ` + (1 index ``)"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("A"),TVariant(TDateTime(2020,10,7).operator double()),TVariant(TDateTime(2020,10,12).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("A"),TVariant(TDateTime(2020,10,8).operator double()),TVariant(TDateTime(2020,10,13).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("B"),TVariant(TDateTime(2020,10,9).operator double()),TVariant(TDateTime(2020,10,14).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("")),TVariant("B"),TVariant(TDateTime(2020,10,10).operator double()),TVariant(TDateTime(2020,10,15).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2133 |
I would like to display a solid line between "root" items, and dotted lines (default) between child items. How can I do that
G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines; G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric; G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABMsIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIXRpFMbxAKQahLEiTIgGUYJHgmK4tQLHb7zGAABRDDSOIDnGQJX") + "haI4JQSMMQDGLAZxVFiPRhAWLpBh+PQATrOdLUfSjVwhBKAQEBA==")); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); var_Column->PartialCheck = true; Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Position"); var_Column1->FormatColumn = L"((1 rindex ``) contains `.`) = 0"; var_Column1->Visible = false; Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%C1",TNoParam()); var_ConditionalFormat->BackColor = 0x1e0e0e0; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 3")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Root 2")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); h = var_Items->AddItem(TVariant("Root 3")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); G2antt1->EndUpdate(); |
2132 |
I can not center or align the cell's caption and icon, when it displays the hierarchy
G2antt1->BeginUpdate(); G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") + "lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" + "0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" + "NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1)); G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project")); long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("<img>1</img> Task (left)")); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("<c><img>2</img> Task (center)")); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("<r>Task (right) <img>3</img>")); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2131 |
How do I mask for float/integer number
G2antt1->BeginUpdate(); G2antt1->ColumnAutoResize = true; G2antt1->Columns->Add(L"Type")->Width = 32; G2antt1->Columns->Add(L"Editor"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Integer")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("12")); Exg2anttlib_tlb::IEditorPtr var_Editor = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor->Numeric = Exg2anttlib_tlb::NumericEnum::exInteger; h = var_Items->AddItem(TVariant("Integer (mask, group)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("10002")); var_Items->set_FormatCell(TVariant(h),TVariant(1),L"value format `0||`"); Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::MaskType; var_Editor1->Mask = L";;;float,digits=0,invalid=empty,warning=invalid character"; h = var_Items->AddItem(TVariant("Integer (mask, no group)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("10002")); var_Items->set_FormatCell(TVariant(h),TVariant(1),L"value format `0|0|`"); Exg2anttlib_tlb::IEditorPtr var_Editor2 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor2->EditType = Exg2anttlib_tlb::EditTypeEnum::MaskType; var_Editor2->Mask = L";;;float,digits=0,grouping=,invalid=empty,warning=invalid character"; h = var_Items->AddItem(TVariant("Float")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("+12.34E+2")); Exg2anttlib_tlb::IEditorPtr var_Editor3 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor3->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor3->Numeric = Exg2anttlib_tlb::NumericEnum::exFloat; h = var_Items->AddItem(TVariant("Float (no signs)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("12.34E-2")); Exg2anttlib_tlb::IEditorPtr var_Editor4 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor4->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor4->Numeric = Exg2anttlib_tlb::NumericEnum::exDisableSigns | Exg2anttlib_tlb::NumericEnum::exFloat; h = var_Items->AddItem(TVariant("Float-Integer")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("+12.34")); Exg2anttlib_tlb::IEditorPtr var_Editor5 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor5->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor5->Numeric = Exg2anttlib_tlb::NumericEnum::exFloatInteger; h = var_Items->AddItem(TVariant("Float-Integer (no signs)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("12.34")); Exg2anttlib_tlb::IEditorPtr var_Editor6 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor6->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType; var_Editor6->Numeric = Exg2anttlib_tlb::NumericEnum::exDisableSigns | Exg2anttlib_tlb::NumericEnum::exFloatInteger; h = var_Items->AddItem(TVariant("Float (mask,group)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("10002.34")); var_Items->set_FormatCell(TVariant(h),TVariant(1),L"value format `2`"); Exg2anttlib_tlb::IEditorPtr var_Editor7 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor7->EditType = Exg2anttlib_tlb::EditTypeEnum::MaskType; var_Editor7->Mask = L";;;float,invalid=empty,warning=invalid character"; h = var_Items->AddItem(TVariant("Float (mask, no group)")); var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("10002.34")); var_Items->set_FormatCell(TVariant(h),TVariant(1),L"value format `2|0|`"); Exg2anttlib_tlb::IEditorPtr var_Editor8 = var_Items->get_CellEditor(TVariant(h),TVariant(1)); var_Editor8->EditType = Exg2anttlib_tlb::EditTypeEnum::MaskType; var_Editor8->Mask = L";;;float,grouping=,invalid=empty,warning=invalid character"; G2antt1->EndUpdate(); |
2130 |
Is it possible to offset (horizontally) the bar's caption
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"HOffset"); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; G2antt1->ScrollBySingleLine = true; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,16).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar->Color = RGB(164,164,164); var_Bar->StartColor = RGB(240,240,240); var_Bar->EndColor = var_Bar->StartColor; var_Bar->Height = 15; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("label")); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("right")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(2)); h = var_Items->AddItem(TVariant("right - 4")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(2)); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaptionHOffset,TVariant(-4)); h = var_Items->AddItem(TVariant("left")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0)); h = var_Items->AddItem(TVariant("left + 4")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(0)); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaptionHOffset,TVariant(4)); G2antt1->EndUpdate(); |
2129 |
Is it possible to always center the bar's caption (even if the item-bar is partially visible)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Align"); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; G2antt1->ScrollBySingleLine = true; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,23).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar->Color = RGB(164,164,164); var_Bar->StartColor = RGB(240,240,240); var_Bar->EndColor = var_Bar->StartColor; var_Bar->Height = 15; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("default")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TVariant(""),TVariant("label")); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(1)); h = var_Items->AddItem(TVariant("default + 32")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2000,12,22).operator double()),TVariant(TDateTime(2000,12,27).operator double()),TVariant(""),TVariant("label")); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(33)); G2antt1->EndUpdate(); |
2128 |
How do I set an extra data for each item
// MouseMove event - Occurs when the user moves the mouse. void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short Button,short Shift,int X,int Y) { long i = G2antt1->ItemFromPoint[-1,-1,c,hit]; OutputDebugString( L"i" ); OutputDebugString( PChar(G2antt1->Items->get_ItemData(i)) ); } G2antt1->BeginUpdate(); G2antt1->ColumnAutoResize = true; G2antt1->Columns->Add(L"Default"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_ItemData(var_Items->AddItem(TVariant("method 1")),TVariant("your extra data of method 1")); var_Items->InsertItem(0,TVariant("your extra data of method 2"),TVariant("method 2")); Exg2anttlib_tlb::IItemsPtr var_Items1 = G2antt1->Items; var_Items1->DefaultItem = var_Items1->AddItem(TVariant("method 3")); var_Items1->set_ItemData(0,TVariant("your extra data of method 3")); G2antt1->EndUpdate(); |
2127 |
Is it possible to show the position of rows the into the chart section
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed). void __fastcall TForm1::G2antt1BeforeExpandItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item,Variant * Cancel) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->Indent = 16; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines; G2antt1->ScrollBySingleLine = true; G2antt1->FullRowSelect = Exg2anttlib_tlb::CellSelectEnum::exColumnSel; G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos"); var_Column->Visible = false; var_Column->FormatColumn = L"`<r><bgcolor 000000><fgcolor FFFFFF> ` + 1 apos `` + ` </fgcolor></bgcolor>`"; var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1)); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->ColumnsFormatLevel = L",|,1:64"; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double())); var_Chart->ShowCollapsedBars = true; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack; var_Bar->Color = RGB(0,0,0); var_Bar->StartColor = RGB(196,196,196); var_Bar->EndColor = RGB(196,196,196); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project 1")); long h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Resources")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("A"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,24).operator double()),TVariant(TDateTime(2006,9,28).operator double()),TVariant("B"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,27).operator double()),TVariant(TDateTime(2006,9,29).operator double()),TVariant("C"),TNoParam()); h = var_Items->AddItem(TVariant("Project 2")); h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Resources")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("A"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,24).operator double()),TVariant(TDateTime(2006,9,28).operator double()),TVariant("B"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,27).operator double()),TVariant(TDateTime(2006,9,29).operator double()),TVariant("C"),TNoParam()); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2126 |
I do not like to specify the item padding for every column I add. The question is how can I do it automatically
G2antt1->BeginUpdate(); G2antt1->AttachTemplate(TVariant("handle AddColumn(Column){Column{Def(48)=8;Def(49)=8;AllowDragging=False;AllowSizing = True}}")); G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesVSolid; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Item"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos"); var_Column->Position = 0; var_Column->Width = 32; var_Column->AllowSizing = false; var_Column->FormatColumn = L"1 index ``"; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item A")); var_Items->AddItem(TVariant("Item B")); var_Items->AddItem(TVariant("Item C")); G2antt1->EndUpdate(); |
2125 |
Stack vs Cascade
G2antt1->BeginUpdate(); G2antt1->ScrollBySingleLine = true; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Flat; G2antt1->Columns->Add(L"Type"); G2antt1->BackColorAlternate = RGB(240,240,240); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto; var_Chart->AllowLinkBars = false; var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour; var_Chart->set_PaneWidth(false,128); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->Bars->Copy(L"Task",L"Stack")->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack; var_Chart->Bars->Copy(L"Task",L"AStack")->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack; var_Chart->Bars->Copy(L"Task",L"Cascade")->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsCascade; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Stack")); var_Items->AddBar(h,TVariant("Stack"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam()); var_Items->AddBar(h,TVariant("Stack"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam()); var_Items->AddBar(h,TVariant("Stack"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam()); var_Items->AddBar(h,TVariant("Stack"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A4"),TNoParam()); var_Items->AddBar(h,TVariant("Stack"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam()); var_Items->AddItem(TNoParam()); h = var_Items->AddItem(TVariant("Stack-AutoArrange")); var_Items->AddBar(h,TVariant("AStack"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam()); var_Items->AddBar(h,TVariant("AStack"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam()); var_Items->AddBar(h,TVariant("AStack"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam()); var_Items->AddBar(h,TVariant("AStack"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A4"),TNoParam()); var_Items->AddBar(h,TVariant("AStack"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam()); var_Items->AddItem(TNoParam()); h = var_Items->AddItem(TVariant("Cascade")); var_Items->AddBar(h,TVariant("Cascade"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam()); var_Items->AddBar(h,TVariant("Cascade"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam()); var_Items->AddBar(h,TVariant("Cascade"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam()); var_Items->AddBar(h,TVariant("Cascade"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A4"),TNoParam()); var_Items->AddBar(h,TVariant("Cascade"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam()); var_Items->AddItem(TNoParam()); var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%9%>")); G2antt1->EndUpdate(); |
2124 |
How can I change the Exclude field in the drop down filter window
G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->HTMLPicture[L"exclude"] = TVariant(String("gCJKBOI4NBQaBQAhQNJJIIhShQACERCAEAcRdrdcUQhQDOZCJJUBEjbbhJ7giIJOBILJziJvl4BeKibhDiIZOhFLB0KZvMx0O5hORlAB3owuNJuNZzMZhOBlFxvORnT") + "buHgaiIeKBMKhFf9fDIcEoPCAVEAlGI4HhBBYMCARCQVGg4IhVMCAWC2XY1Q7WJ8RBB0KROKYAYDBbzicjndD6fA/VsRHRJIhBkRbMYIGwGAQjA2fRYOEBoYjBFBx1AT" + "CgCGQ8M7OTjSaJMDRDKIwYu5DrIMBgSAADKJTqhBhyRApAA3FAucZPPilokRJJFJxEVxCMCCgIA=="); G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarExclude] = L"<img>exclude</img>"; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Items"); var_Column->DisplayFilterButton = true; var_Column->DisplayFilterPattern = false; var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Root 2")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); G2antt1->EndUpdate(); |
2123 |
How can I change the Exclude field in the drop down filter window
G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarExclude] = L"<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>"; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Items"); var_Column->DisplayFilterButton = true; var_Column->DisplayFilterPattern = false; var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Root 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Root 2")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); G2antt1->EndUpdate(); |
2122 |
The grid lines looks different then before. What should I do
G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); var_Column->PartialCheck = true; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines; G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesGeometric; G2antt1->Chart->DrawGridLines = G2antt1->DrawGridLines; G2antt1->Chart->GridLineStyle = G2antt1->GridLineStyle; G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project")); long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 1")); var_Items->set_SelectItem(hChild,true); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 2")); var_Items->set_CellState(TVariant(hChild),TVariant(0),1); hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 3")); var_Items->set_CellState(TVariant(hChild),TVariant(0),1); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2121 |
How can I hide the task/bar's extra-caption
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_PaneWidth(false,96); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2011,1,1).operator double())); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaption,TVariant("<%=%C0%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarExtraCaptionHAlign,TVariant(16)); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Show"); Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(57)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AllowCellValueToItemBar = true; var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2011,1,3).operator double()),TVariant(TDateTime(2011,1,7).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(var_Items->FirstVisibleItem,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarShowExtraCaption,TVariant(false)); var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2011,1,4).operator double()),TVariant(TDateTime(2011,1,8).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2120 |
How can I hide the task/bar's caption
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_PaneWidth(false,96); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2011,1,1).operator double())); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%C0%>")); var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18)); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Show"); Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1)); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(56)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AllowCellValueToItemBar = true; var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2011,1,3).operator double()),TVariant(TDateTime(2011,1,7).operator double()),TNoParam(),TNoParam()); var_Items->set_ItemBar(var_Items->FirstVisibleItem,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarShowCaption,TVariant(false)); var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2011,1,4).operator double()),TVariant(TDateTime(2011,1,8).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2119 |
Can I sort the column by check-state
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::exSortByState; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TNoParam()); var_Items->set_CellState(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),1); var_Items->set_CellState(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),1); var_Items->AddItem(TNoParam()); G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->EndUpdate(); |
2118 |
Can I sort the column by image
G2antt1->BeginUpdate(); G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") + "lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" + "0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" + "NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Image"); var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::exSortByImage; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->set_CellImage(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),3); var_Items->AddItem(TNoParam()); var_Items->set_CellImage(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),1); var_Items->set_CellImage(TVariant(var_Items->AddItem(TNoParam())),TVariant(0),2); G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->EndUpdate(); |
2117 |
Can I sort the column by value(numeric)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Value"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1)); var_Column->FormatColumn = L"`<fgcolor=808080><off 4><font ;6> ` + (1 index ``) + ` </font></off></fgcolor>` + value"; var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::exSortByValue | Exg2anttlib_tlb::SortTypeEnum::SortNumeric; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("1")); var_Items->AddItem(TVariant("10")); var_Items->AddItem(TVariant("2")); var_Items->AddItem(TVariant("20")); G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->EndUpdate(); |
2116 |
Can I sort a column by cell's state (checked, unchecked) rather than caption
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check"); Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor; var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType; var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1)); var_Column->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant(true)); var_Items->AddItem(TVariant(false)); var_Items->AddItem(TVariant(false)); var_Items->AddItem(TVariant(true)); G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending; G2antt1->EndUpdate(); |
2115 |
How can I highlight(bold) the items that displays milestones (method 2)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Tasks"); var_Columns->Add(L"Start")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1)); var_Columns->Add(L"End")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(543)); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Days"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258)); var_Column->FormatColumn = L"value ? value : ``"; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Type"); var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(0)); var_Column1->Visible = false; Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%4 = `Milestone`",TNoParam()); var_ConditionalFormat->Bold = true; var_ConditionalFormat->Italic = true; var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum::exFormatToItems; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,9,20).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,256); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task:Split"); var_Bar->Shortcut = L"Task"; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AllowCellValueToItemBar = true; var_Items->AddBar(var_Items->AddItem(TVariant("M1")),TVariant("Milestone"),TVariant(TDateTime(2010,9,24).operator double()),TVariant(TDateTime(2010,9,24).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2010,9,24).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2010,9,27).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("M3")),TVariant("Milestone"),TVariant(TDateTime(2010,9,28).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2114 |
How can I highlight(bold) the items that displays milestones (method 1)
G2antt1->BeginUpdate(); Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Tasks"); var_Columns->Add(L"Start")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1)); var_Columns->Add(L"End")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(543)); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Days"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258)); var_Column->FormatColumn = L"value ? value : ``"; Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%3 = 0",TNoParam()); var_ConditionalFormat->Bold = true; var_ConditionalFormat->Italic = true; var_ConditionalFormat->ApplyTo = Exg2anttlib_tlb::FormatApplyToEnum::exFormatToItems; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2010,9,20).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,256); Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task:Split"); var_Bar->Shortcut = L"Task"; var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true)); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AllowCellValueToItemBar = true; var_Items->AddBar(var_Items->AddItem(TVariant("M1")),TVariant("Milestone"),TVariant(TDateTime(2010,9,24).operator double()),TVariant(TDateTime(2010,9,24).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2010,9,24).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2010,9,27).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->AddItem(TVariant("M3")),TVariant("Milestone"),TVariant(TDateTime(2010,9,28).operator double()),TVariant(TDateTime(2010,9,28).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2113 |
Bars with gradient shows no border or frame arround. What can be done (method 2)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); G2antt1->Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); G2antt1->Chart->set_PaneWidth(false,48); G2antt1->DefaultItemHeight = 24; Exg2anttlib_tlb::IBarPtr var_Bar = G2antt1->Chart->Bars->Add(L"E1"); var_Bar->Color = RGB(0,0,0); var_Bar->StartColor = RGB(0,255,0); var_Bar->EndColor = RGB(255,255,0); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternGradientVBox | Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar->Height = 20; Exg2anttlib_tlb::IBarPtr var_Bar1 = G2antt1->Chart->Bars->Add(L"E2"); var_Bar1->Color = RGB(0,0,0); var_Bar1->StartColor = RGB(0,255,0); var_Bar1->EndColor = RGB(255,255,0); var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternGradientVBox | Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar1->Height = 20; var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("[frame=RGB(255,0,0),framethick]")); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TNoParam()); long h = var_Items->AddItem(TVariant("no border")); var_Items->AddBar(h,TVariant("E1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant(""),TNoParam()); h = var_Items->AddItem(TVariant("w/h boder")); var_Items->AddBar(h,TVariant("E2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant(""),TNoParam()); var_Items->AddItem(TNoParam()); G2antt1->EndUpdate(); |
2112 |
Bars with gradient shows no border or frame arround. What can be done (method 1)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); G2antt1->Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); G2antt1->Chart->set_PaneWidth(false,48); G2antt1->DefaultItemHeight = 24; Exg2anttlib_tlb::IBarPtr var_Bar = G2antt1->Chart->Bars->Add(L"E2"); var_Bar->Color = RGB(0,0,0); var_Bar->StartColor = RGB(0,255,0); var_Bar->EndColor = RGB(255,255,0); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternGradientVBox | Exg2anttlib_tlb::PatternEnum::exPatternBox; var_Bar->Height = 20; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TNoParam()); long h = var_Items->AddItem(TVariant("no border")); var_Items->AddBar(h,TVariant("E2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant(""),TNoParam()); h = var_Items->AddItem(TVariant("w/h boder")); var_Items->AddBar(h,TVariant("E2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarBackgroundExt,TVariant("[frame=RGB(255,0,0),framethick]")); var_Items->AddItem(TNoParam()); G2antt1->EndUpdate(); |
2111 |
Is it possible to display auto-numbers (rows-numbers) for non-empty items only
G2antt1->BeginUpdate(); G2antt1->Chart->set_PaneWidth(false,128); Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Items"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos"); var_Column->FormatColumn = L"len(%C0) ? 1 pos `` : ``"; var_Column->Position = 0; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("Item A")); var_Items->AddItem(TVariant("")); var_Items->AddItem(TVariant("Item B")); var_Items->AddItem(TVariant("")); var_Items->AddItem(TVariant("Item C")); G2antt1->EndUpdate(); |
2110 |
Is it possible to separate the group of items using horizontal-lines (root-items)
G2antt1->BeginUpdate(); G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABLEIQAAYAQGKIcBiAKBQAGaAoDgYN4MAANAwjJBMKgBBCLIxhEYobgmGIaRiAUbQSKEPxLEiPmqSHIEWwtDiBZgieTpNhAMg1CTNU4RAKoY") + "RzBKeZ7kGZIVjKMofURRDpxBBMAkB")); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->DefaultItemHeight = 24; G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,196); var_Chart->SelBackColor = G2antt1->SelBackColor; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Default"); var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true)); var_Column->PartialCheck = true; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Position"); var_Column1->FormatColumn = L"1 + ((1 rpos ``) contains `.`)"; var_Column1->Visible = false; Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%C1",TNoParam()); var_ConditionalFormat->BackColor = 0x1000000; var_ConditionalFormat->ChartBackColor = var_ConditionalFormat->BackColor; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Group 1")); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")),TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TNoParam(),TNoParam()); var_Items->set_ExpandItem(h,true); h = var_Items->AddItem(TVariant("Group 2")); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")),TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,13).operator double()),TNoParam(),TNoParam()); var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")),TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TNoParam(),TNoParam()); G2antt1->EndUpdate(); |
2109 |
How can specify a black pattern for the task
G2antt1->BeginUpdate(); G2antt1->DefaultItemHeight = 22; Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,0); G2antt1->Columns->Add(L"Frames"); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Task")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("bar A"),TNoParam()); var_Items->set_ItemBar(h,TVariant("bar A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(1)); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,14).operator double()),TVariant(TDateTime(2001,1,24).operator double()),TVariant("bar B"),TNoParam()); G2antt1->EndUpdate(); |
2108 |
Can I define a bar so it automatically fills the current item/row height (same height)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Task"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,96); var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->Bars->get_Item(TVariant("Task"))->Height = -1; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddBar(var_Items->AddItem(TVariant("Task A")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TNoParam(),TNoParam()); long h = var_Items->AddItem(TVariant("Task A")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant(""),TNoParam()); var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255)); G2antt1->EndUpdate(); |
2107 |
How can I highlight a specified date for the entire chart (Method 2)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,96); var_Chart->UnitWidth = 18; var_Chart->LevelCount = 2; var_Chart->MarkTimeZone(TVariant("zone1"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant(0),TNoParam()); var_Chart->MarkTimeZone(TVariant("zone2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant(0),TVariant("50")); Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("Task(I)")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("I"),TNoParam()); var_Items->AddItem(TVariant("")); G2antt1->EndUpdate(); |
2106 |
How can I highlight a specified date for the entire chart, including the header (Method 1)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,96); var_Chart->UnitWidth = 18; var_Chart->LevelCount = 2; var_Chart->AllowInsideZoom = true; var_Chart->AllowResizeInsideZoom = false; var_Chart->InsideZoomOnDblClick = false; Exg2anttlib_tlb::IInsideZoomFormatPtr var_InsideZoomFormat = var_Chart->DefaultInsideZoomFormat; var_InsideZoomFormat->ForeColor = RGB(255,255,255); var_InsideZoomFormat->BackColorChart = RGB(0,0,1); var_InsideZoomFormat->BackColor = RGB(0,0,1); Exg2anttlib_tlb::IInsideZoomsPtr var_InsideZooms = var_Chart->InsideZooms; var_InsideZooms->SplitBaseLevel = false; var_InsideZooms->DefaultWidth = 18; var_InsideZooms->Add(TVariant(TDateTime(2001,1,8).operator double()))->AllowInsideFormat = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("Task(I)")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("I"),TNoParam()); var_Items->AddItem(TVariant("")); G2antt1->EndUpdate(); |
2105 |
How can I highlight a specified date of a specified item
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,96); var_Chart->UnitWidth = 18; var_Chart->LevelCount = 2; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("Task(D)")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("D"),TNoParam()); var_Items->AddItem(TVariant("")); Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes; Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("NoteD"),TVariant(h),TVariant(TDateTime(2001,1,8).operator double()),L"<b><%dd%></b><br><%m%><br><%yy%>"); var_Note->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,18); var_Note->set_PartShadow(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,false); G2antt1->EndUpdate(); |
2104 |
How can I display the start/end of the task within its margins (notes)
G2antt1->BeginUpdate(); G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double())); var_Chart->set_PaneWidth(false,96); var_Chart->UnitWidth = 18; var_Chart->LevelCount = 2; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; var_Items->AddItem(TVariant("")); long h = var_Items->AddItem(TVariant("Task(T)")); var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("T"),TNoParam()); var_Items->AddItem(TVariant("")); Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes; Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("NoteTS"),TVariant(h),TVariant("T"),L""); var_Note->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden; var_Note->set_PartText(Exg2anttlib_tlb::NotePartEnum::exNoteStart,L"<%d%>"); var_Note->set_PartHOffset(Exg2anttlib_tlb::NotePartEnum::exNoteStart,9); var_Note->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteStart,18); Exg2anttlib_tlb::INotePtr var_Note1 = var_Notes->Add(TVariant("NoteTE"),TVariant(h),TVariant("T"),L""); var_Note1->set_RelativePosition(TVariant("E-1")); var_Note1->ShowLink = Exg2anttlib_tlb::NoteLinkTypeEnum::exNoteLinkHidden; var_Note1->set_PartText(Exg2anttlib_tlb::NotePartEnum::exNoteStart,L"<%d%>"); var_Note1->set_PartHOffset(Exg2anttlib_tlb::NotePartEnum::exNoteStart,9); var_Note1->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteStart,18); G2antt1->EndUpdate(); |
2103 |
Is it possible to show the tasks not-overlaid when the item is collapsed and overlaid once the user expands the item
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed). void __fastcall TForm1::G2antt1BeforeExpandItem(TObject *Sender,Exg2anttlib_tlb::HITEM Item,Variant * Cancel) { G2antt1->Refresh(); } G2antt1->BeginUpdate(); G2antt1->Indent = 16; G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exSolidLine; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines; G2antt1->Columns->Add(L"Tasks"); Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart; var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double())); var_Chart->ShowCollapsedBars = true; var_Chart->LevelCount = 2; var_Chart->set_PaneWidth(false,128); var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines; Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task")); var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack; var_Bar->Color = RGB(0,0,0); var_Bar->StartColor = RGB(196,196,196); var_Bar->EndColor = RGB(196,196,196); var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Project 1")); long h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Resources")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("A"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,24).operator double()),TVariant(TDateTime(2006,9,28).operator double()),TVariant("B"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,27).operator double()),TVariant(TDateTime(2006,9,29).operator double()),TVariant("C"),TNoParam()); h = var_Items->AddItem(TVariant("Project 2")); h1 = var_Items->InsertItem(h,TNoParam(),TVariant("Resources")); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TVariant("A"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,24).operator double()),TVariant(TDateTime(2006,9,28).operator double()),TVariant("B"),TNoParam()); var_Items->AddBar(h1,TVariant("Task"),TVariant(TDateTime(2006,9,27).operator double()),TVariant(TDateTime(2006,9,29).operator double()),TVariant("C"),TNoParam()); var_Items->set_ExpandItem(h,true); G2antt1->EndUpdate(); |
2102 |
Is it possible to display the label of the level without truncating / no clip
|
2101 |
How do I get the item's auto-number, when using FormatColumn property, as CellValue gets empty
// SelectionChanged event - Fired after a new item has been selected. void __fastcall TForm1::G2antt1SelectionChanged(TObject *Sender) { Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; OutputDebugString( L"pos: " ); OutputDebugString( var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(1)) ); OutputDebugString( L"rpos(1): " ); OutputDebugString( var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(2)) ); OutputDebugString( L"rpos(2): " ); OutputDebugString( var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(3)) ); OutputDebugString( L"apos: " ); OutputDebugString( var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(4)) ); OutputDebugString( L"index: " ); OutputDebugString( var_Items->get_CellCaption(TVariant(var_Items->FocusItem),TVariant(5)) ); } G2antt1->BeginUpdate(); G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot; G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines; G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched; Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns; var_Columns->Add(L"Items"); Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"pos"); var_Column->FormatColumn = L"1 pos ``"; var_Column->Position = 0; var_Column->Width = 48; var_Column->AllowSizing = false; Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"rpos(1)"); var_Column1->FormatColumn = L"1 rpos ``"; var_Column1->Position = 1; var_Column1->Width = 48; var_Column1->AllowSizing = false; Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"rpos(2)"); var_Column2->FormatColumn = L"1 rpos `.||A-Z`"; var_Column2->Position = 2; var_Column2->Width = 48; var_Column2->AllowSizing = false; Exg2anttlib_tlb::IColumnPtr var_Column3 = var_Columns->Add(L"apos"); var_Column3->FormatColumn = L"1 apos ``"; var_Column3->Position = 3; var_Column3->Width = 48; var_Column3->AllowSizing = false; Exg2anttlib_tlb::IColumnPtr var_Column4 = var_Columns->Add(L"index"); var_Column4->FormatColumn = L"1 index ``"; var_Column4->Position = 4; var_Column4->Width = 48; var_Column4->AllowSizing = false; Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items; long h = var_Items->AddItem(TVariant("Item 1")); var_Items->InsertItem(h,TNoParam(),TVariant("Child 1")); long hSel = var_Items->InsertItem(h,TNoParam(),TVariant("Child 2")); var_Items->set_ExpandItem(h,true); var_Items->AddItem(TVariant("Item 2")); var_Items->AddItem(TVariant("Item 3")); G2antt1->EndUpdate(); G2antt1->Items->set_SelectItem(hSel,true); |